我对Java还是很陌生,我来自C ++。我正在使用必须在调用受保护的构造函数之前对其进行扩展的类。我只需要一个实例中的类。有没有一种方法可以动态创建类并同时实例化它?

我发现了类似的帖子,但没有达到目标。我以以下代码为例,但是在语法上当然是错误的。

final ffd.tokens.CountryTokens cToken = new class USA extends ffd.tokens.CountryTokens
{
    USA (String value)
    {
        super(value);
    }
} ("USA");

最佳答案

像这样吗

final ffd.tokens.CountryTokens cToken = new ffd.tokens.CountryTokens("someValue")
{
// override something
};


更正:

即使使用受保护的方法,您也可以创建将扩展ffd.tokens.CountryTokens的Builder(非常疯狂吧?)

public abstract class CountryBuilder extends ffd.tokens.CountryTokens {
   public CountryBuilder () { super("useless-data"); }
   public abstract ffd.tokens.CountryTokens build (String val);
}


使用:

CountryBuilder builder = new CountryBuilder (){
   @Override
   public ffd.tokens.CountryTokens build(String val) {
      return new ffd.tokens.CountryTokens(val) {};
   }
};

builder.build("USA");
builder.build("Canada");


我想你应该已经明白了。

09-27 21:27