Java 8:反射字段.get()try-catch错误 问题
我在Eclipse中收到一个错误,指出我对Java 8:反射字段.get()try-catch错误 问题,java,reflection,try-catch,java-8,Java,Reflection,Try Catch,Java 8,我在Eclipse中收到一个错误,指出我对Field.get(Object)的调用有一个未处理的异常。当我用推荐的try-catch包装代码时,错误仍然存在。我假设我必须用try-catch将参数包装在get()方法中。这可能吗 错误 未处理的异常类型IllegalAccessException 有关行: return list.stream().map(e -> fieldType.cast(f.get(e))).collect(Collectors.toList()); 代码 主类
Field.get(Object)
的调用有一个未处理的异常。当我用推荐的try-catch包装代码时,错误仍然存在。我假设我必须用try-catch将参数包装在get()
方法中。这可能吗
错误
未处理的异常类型IllegalAccessException
有关行:
return list.stream().map(e -> fieldType.cast(f.get(e))).collect(Collectors.toList());
代码
主类
Entity.java
您需要处理
IllegalAccessException
,它可以作为fieldType.cast(f.get(e))
的结果抛出。您可以在try/catch
if (useLambda) {
return list.stream().map(e -> {
try {
return fieldType.cast(f.get(e));
} catch (IllegalAccessException e1) {
e1.printStackTrace();
return null;
}
}).collect(Collectors.toList());
}
您需要处理
IllegalAccessException
,它可以作为fieldType.cast(f.get(e))
的结果抛出。您可以在try/catch
if (useLambda) {
return list.stream().map(e -> {
try {
return fieldType.cast(f.get(e));
} catch (IllegalAccessException e1) {
e1.printStackTrace();
return null;
}
}).collect(Collectors.toList());
}
您需要处理
IllegalAccessException
,它可以作为fieldType.cast(f.get(e))
的结果抛出。您可以在try/catch
if (useLambda) {
return list.stream().map(e -> {
try {
return fieldType.cast(f.get(e));
} catch (IllegalAccessException e1) {
e1.printStackTrace();
return null;
}
}).collect(Collectors.toList());
}
您需要处理
IllegalAccessException
,它可以作为fieldType.cast(f.get(e))
的结果抛出。您可以在try/catch
if (useLambda) {
return list.stream().map(e -> {
try {
return fieldType.cast(f.get(e));
} catch (IllegalAccessException e1) {
e1.printStackTrace();
return null;
}
}).collect(Collectors.toList());
}
Eclipse现在有点愚蠢(可能有一个bug打开了) 这里有一个lambda表达式
return list.stream().map(e -> fieldType.cast(f.get(e))).collect(Collectors.toList());
字段#get(Object)
被声明为引发选中的异常。但是您正在实现的函数接口方法Function#apply(Object)
,却没有。Eclipse很愚蠢,因为它建议您将语句包装在一个try块中,但它会在整个过程中添加try块
try {
return list.stream().map(e -> fieldType.cast(f.get(e))).collect(Collectors.toList());
} catch (Exception e) {
}
实际上,它应该将其添加到lambda的主体中
return list.stream().map(e -> {
try {
return fieldType.cast(f.get(e));
} catch (Exception e) {
return /* something else */ null; // or throw an unchecked exception
}
}).collect(Collectors.toList());
当lambda主体是一个简单的表达式而不是一个块时,这种情况似乎就会发生。Eclipse现在有点愚蠢(可能有一个bug打开了) 这里有一个lambda表达式
return list.stream().map(e -> fieldType.cast(f.get(e))).collect(Collectors.toList());
字段#get(Object)
被声明为引发选中的异常。但是您正在实现的函数接口方法Function#apply(Object)
,却没有。Eclipse很愚蠢,因为它建议您将语句包装在一个try块中,但它会在整个过程中添加try块
try {
return list.stream().map(e -> fieldType.cast(f.get(e))).collect(Collectors.toList());
} catch (Exception e) {
}
实际上,它应该将其添加到lambda的主体中
return list.stream().map(e -> {
try {
return fieldType.cast(f.get(e));
} catch (Exception e) {
return /* something else */ null; // or throw an unchecked exception
}
}).collect(Collectors.toList());
当lambda主体是一个简单的表达式而不是一个块时,这种情况似乎就会发生。Eclipse现在有点愚蠢(可能有一个bug打开了) 这里有一个lambda表达式
return list.stream().map(e -> fieldType.cast(f.get(e))).collect(Collectors.toList());
字段#get(Object)
被声明为引发选中的异常。但是您正在实现的函数接口方法Function#apply(Object)
,却没有。Eclipse很愚蠢,因为它建议您将语句包装在一个try块中,但它会在整个过程中添加try块
try {
return list.stream().map(e -> fieldType.cast(f.get(e))).collect(Collectors.toList());
} catch (Exception e) {
}
实际上,它应该将其添加到lambda的主体中
return list.stream().map(e -> {
try {
return fieldType.cast(f.get(e));
} catch (Exception e) {
return /* something else */ null; // or throw an unchecked exception
}
}).collect(Collectors.toList());
当lambda主体是一个简单的表达式而不是一个块时,这种情况似乎就会发生。Eclipse现在有点愚蠢(可能有一个bug打开了) 这里有一个lambda表达式
return list.stream().map(e -> fieldType.cast(f.get(e))).collect(Collectors.toList());
字段#get(Object)
被声明为引发选中的异常。但是您正在实现的函数接口方法Function#apply(Object)
,却没有。Eclipse很愚蠢,因为它建议您将语句包装在一个try块中,但它会在整个过程中添加try块
try {
return list.stream().map(e -> fieldType.cast(f.get(e))).collect(Collectors.toList());
} catch (Exception e) {
}
实际上,它应该将其添加到lambda的主体中
return list.stream().map(e -> {
try {
return fieldType.cast(f.get(e));
} catch (Exception e) {
return /* something else */ null; // or throw an unchecked exception
}
}).collect(Collectors.toList());
当lambda体是一个简单的表达式而不是一个块时,似乎会发生这种情况。我以为就是这样,我假设方法的全局抛出会满足这一点。。。我想,在一行上写下整件事并不能解决问题。@Mr.Polywhill异常会在
函数中抛出#apply(Object)
在映射中抛出(它也不声明抛出),而不是在你的方法中抛出。我以为就是这样,我以为这些方法的全局抛出会满足这一点。。。我想,在一行上写下整件事并不能解决问题。@Mr.Polywhill异常会在函数中抛出#apply(Object)
在映射中抛出(它也不声明抛出),而不是在你的方法中抛出。我以为就是这样,我以为这些方法的全局抛出会满足这一点。。。我想,在一行上写下整件事并不能解决问题。@Mr.Polywhill异常会在函数中抛出#apply(Object)
在映射中抛出(它也不声明抛出),而不是在你的方法中抛出。我以为就是这样,我以为这些方法的全局抛出会满足这一点。。。我想,在一行上写下整件事并不能解决问题。@Mr.polywhill异常将在函数中抛出#apply(Object)
在映射中抛出(它也不声明抛出),而不是在您的方法中抛出。