【发布时间】:2017-04-18 20:23:11
【问题描述】:
我正在尝试创建一种方法,将 txtfile 中的文本转换为字符串。当我从它所在的同一个类中调用它时,该方法正在工作(该类是一个活动)。但是当我从另一个类(一个普通类)调用它时,它需要是静态的。而且我对静态了解不多,但是该方法在静态时不起作用。由于我需要从另一个类调用该方法,我要么需要该方法是非静态的,要么在它是静态时修复错误。方法如下:
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”。 我该如何解决这个问题?
【问题讨论】:
-
这个非常有趣的“我不会听线程”的某些副本:stackoverflow.com/questions/43476217