KT-544 fixed: "Create generic init functions for generic classes"
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
public class Identifier<T> {
|
||||
private final T myName;
|
||||
private boolean myHasDollar;
|
||||
private boolean myNullable = true;
|
||||
|
||||
public Identifier(T name) {
|
||||
myName = name;
|
||||
}
|
||||
|
||||
public Identifier(T name, boolean isNullable) {
|
||||
myName = name;
|
||||
myNullable = isNullable;
|
||||
}
|
||||
|
||||
public Identifier(T name, boolean hasDollar, boolean isNullable) {
|
||||
myName = name;
|
||||
myHasDollar = hasDollar;
|
||||
myNullable = isNullable;
|
||||
}
|
||||
|
||||
@Override
|
||||
public T getName() {
|
||||
return myName;
|
||||
}
|
||||
}
|
||||
|
||||
public class User {
|
||||
public static void main() {
|
||||
Identifier<?> i1 = new Identifier<String>("name", false, true);
|
||||
Identifier i2 = new Identifier<String>("name", false);
|
||||
Identifier i3 = new Identifier<String>("name");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
public open class Identifier<T>(myName : T?, myHasDollar : Boolean) {
|
||||
private val myName : T?
|
||||
private var myHasDollar : Boolean
|
||||
private var myNullable : Boolean = true
|
||||
open public fun getName() : T? {
|
||||
return myName
|
||||
}
|
||||
class object {
|
||||
open public fun init<T>(name : T?) : Identifier {
|
||||
val __ = Identifier(name, false)
|
||||
return __
|
||||
}
|
||||
open public fun init<T>(name : T?, isNullable : Boolean) : Identifier {
|
||||
val __ = Identifier(name, false)
|
||||
__.myNullable = isNullable
|
||||
return __
|
||||
}
|
||||
open public fun init<T>(name : T?, hasDollar : Boolean, isNullable : Boolean) : Identifier {
|
||||
val __ = Identifier(name, hasDollar)
|
||||
__.myNullable = isNullable
|
||||
return __
|
||||
}
|
||||
}
|
||||
{
|
||||
$myName = myName
|
||||
$myHasDollar = myHasDollar
|
||||
}
|
||||
}
|
||||
public open class User() {
|
||||
class object {
|
||||
open public fun main() : Unit {
|
||||
var i1 : Identifier<*>? = Identifier.init<String?>("name", false, true)
|
||||
var i2 : Identifier<*>? = Identifier.init<String?>("name", false)
|
||||
var i3 : Identifier<*>? = Identifier.init<String?>("name")
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user