从方法初始化的Java final实例变量

Ahm*_*ck' 0 java android final

我需要在一个类中创建一个最终字符串并从一个方法中初始化它,我在网上搜索一些说可能有些人说不!
我通过了这个,并在接受的答案中,他说,构造函数可能没有提到非构造函数方法

但是,如果你删除静态,你可以这样做:

class A  {    
    private final int x;

    public A()
    {
        x = 5;
    } }
Run Code Online (Sandbox Code Playgroud)

在我的Android案例中,我想这样做

public class MyActivity extends Activity
{
    final String DOWNLOADS_FOLDER_PATH;
    @Override
    public void onCreate(Bundle savedInstanceState)
    { ....

   DOWNLOADS_FOLDER_PATH=Environment.getExternalStorageDirectory().getPath()+"/downloads/";
    // i cant do that neither
    // DOWNLOADS_FOLDER_PATH="s";
    }
}
Run Code Online (Sandbox Code Playgroud)

我需要从一个方法初始化,因为我有一个调用

Environment.getExternalStorageDirectory().getPath()
Run Code Online (Sandbox Code Playgroud)

任何的想法?

aim*_*aim 5

为什么你不能立即初始化它?getExternalStorageDirectory是静态方法,所以:

static final String DOWNLOADS_FOLDER_PATH = Environment.getExternalStorageDirectory().getPath() + "/downloads/";
Run Code Online (Sandbox Code Playgroud)