gpt4 book ai didi

java - 无法从静态上下文引用非静态方法 getAssets (Java)(Android)

转载 作者:行者123 更新时间:2023-12-02 02:53:16 25 4
gpt4 key购买 nike

我正在尝试创建一种方法,将 txt 文件中的文本获取到字符串中。当我从它所在的同一个类(该类是一个 Activity )调用它时,该方法正在工作。但是当我从另一个类(普通类)调用它时,它需要是静态的。而且我对静态了解不多,但是静态时该方法不起作用。由于我需要从另一个类调用该方法,因此我要么需要该方法是非静态的,要么在它是静态时修复错误。方法如下:

public static String loadData(String inFile) {
String str = "";
try{
StringBuilder buf=new StringBuilder();
InputStream json= getAssets().open(inFile);
BufferedReader in=
new BufferedReader(new InputStreamReader(json, "UTF-8"));
while ((str=in.readLine()) != null) {
buf.append(str);
}
in.close();
return buf.toString();
} catch (Exception e) {
Log.e("er0r", e.toString());
}
return str;
}

从类 Solve.java 调用该方法:

public static void permutateYellowEdges(){
try {
Rotations.rotateSequence(MainActivity.loadData("tables\\topLayer\\edgePerm.rt"), States.getYellowEdgeState());
}catch(Exception e){
e.printStackTrace();
}
}

我得到的错误是“getAssets”下的一条红线,表示“无法从静态上下文引用非静态方法 getAssets”。我该如何解决这个问题?

最佳答案

您需要将 getAssets() 设为静态,或使用静态引用调用它。目前它被定义为非静态方法,您需要让您的方法要么是静态的,要么是非静态的。否则,您需要为 getAssets 所在的类创建对象。

关于java - 无法从静态上下文引用非静态方法 getAssets (Java)(Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43481536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com