我的MainActivity代碼空指針訪問警告
private void updateConnectionState()
{
Device localDevice = this.Controller.getConnectedDevice();
if (localDevice == null)
updateModelSpinner(localDevice.getType()); //warning at this line
str2 = localDevice.getHostName();
if (!TextUtils.isEmpty(str2))
}
private void updateSpinner(Device.Type paramType)
{
boolean bool = Device.Type.UNKNOWN.equals(paramType);
int i = 0;
if (!bool)
i = 1 + paramTvType.ordinal();
this.ModelSpinner.setSelection(i);
}
private void ModelSpinner(Device.Type paramType)
{
boolean bool = Device.Type.UNKNOWN.equals(paramType);
int i = 0;
if (!bool)
i = 1 + paramType.ordinal();
this.ModelSpinner.setSelection(i);
}
我的枚舉類是
public class Device {
private Type type = Type.A_LOGIC;
public static Type getTypeForId(int paramInt)
{
switch (paramInt)
{
default:
return Type.A_LOGIC;
case 0:
return TvType.B_LOGIC;
case 1:
return TvType.A_LOGIC;
case 2:
return TvType.D_LOGIC;
case 3:
return TvType.E_LOGIC;
case 4:
}
return TvType.F_LOGIC;
}
public void setType(Type paramType)
{
this.Type = paramType;
}
public enum Type
{
A_LOGIC("A_LOGIC"),
B_LOGIC ("B_LOGIC"),
C_LOGIC ("C_LOGIC"),
D_LOGIC("D_LOGIC"),
E_LOGIC ("E_LOGIC"),
UNKNOWN("UNKNOWN");
private String object;
TvType(String localobj)
{
this.object; = localobj;
}
public String getLetter()
{
return this.object;;
}
}
public Type getType()
{
return this.type;
}
,並在我的方法中的主要活動正在呼叫的類型
updateSpinner(localDevice.getType());
但這裏它顯示的警告爲
Null pointer access: The variable localTVDevice can only be null at this location
並在該行拋出一個零點錯誤。 對於枚舉的概念我不熟悉,所以請告訴我爲什麼拋出這個錯誤。我提到了堆棧溢出但找不到答案。
您應該共享您的updateSpinner方法。 –
和所有的調用代碼。您發佈的代碼和您的錯誤消息引用了不同的變量名稱,我們需要查看您實際編寫的內容。 – chrylis
您可能希望使用帶有數字字段的枚舉,並在使用'object'的地方使用'name()'。同時檢查你的開關'情況1'這裏可能有一個錯字('C_LOGIC') – 2014-01-07 06:26:19