簡體   English   中英

如何動態創建一個類並在Java中實例化它?

[英]How to dynamically create a class and instantiate it in Java?

我對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");

我想你應該已經明白了。

我想我明白了。 我一直在考慮使用Java動態分配,但是如果我只是創建一個本地實例,我就會這樣做。

class USA extends ffd.tokens.CountryTokens
{

    public USA() { super("USA"); }

} USA country;

現在我有了USA類型的本地變量country

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM