Instances izveide, izmantojot klases nosaukumu un izsaucot konstruktoru
Vai ir veids, kā izveidot konkrētas klases eksemplāru, norādot klases nosaukumu (dinamisko) un nododot parametrus tās konstruktoram.
Kaut kas līdzīgs:
Object object = createInstance("mypackage.MyClass","MyAttributeValue");
Kur "MyAttributeValue"
ir MyClass
konstruktora arguments.
298
3
Jā, kaut kas līdzīgs:
Tas, protams, darbosies tikai ar vienu virknes parametru, bet to var diezgan viegli mainīt.
Ņemiet vērā, ka klases nosaukumam jābūt pilnībā kvalificētam, t. i., ieskaitot vārdu telpu. Ja klases ir ligzdotas, ir jāizmanto dolārs (jo to izmanto kompilators). Piemēram:
Lai iegūtu šīs
Class
objektu, ir nepieciešamsClass.forName("foo.Outer$Nested")
.Varat izmantot
Class.forName()
, lai iegūtu vēlamās klasesClass
objektu.Pēc tam izmantojiet
getConstructor()
, lai atrastu vajadzīgoConstructor
objektu.Visbeidzot, izsauciet
newInstance()
šim objektam, lai iegūtu savu jauno gadījumu.Varat izmantot pārdomas