Questions tagged «nullpointerexception»

当需要对象时,应用程序尝试使用null时引发的Java异常。

30
避免!=空语句
我object != null要避免很多NullPointerException。 有没有好的替代方法? 例如,我经常使用: if (someobject != null) { someobject.doCalc(); } 这将检查上述片段中NullPointerException的someobject对象。 请注意,可接受的答案可能已过期,请参阅https://stackoverflow.com/a/2386013/12943以获取最新的方法。


22
我应该使用哪个@NotNull Java注释?
我希望使我的代码更具可读性,并使用诸如IDE代码检查和/或静态代码分析(FindBugs和Sonar)之类的工具来避免NullPointerExceptions。许多工具似乎彼此不兼容,并且@NotNull/ @NonNull/ @Nonnull注解在我的代码中列出所有工具都很难读。关于哪个是“最佳”的任何建议?这是我发现的等效注释的列表: javax.validation.constraints.NotNull 创建用于运行时验证,而非静态分析。 文件资料 edu.umd.cs.findbugs.annotations.NonNull 由Findbugs静态分析使用,因此由Sonar(现在称为Sonarqube) 文档使用 javax.annotation.Nonnull 这可能也适用于Findbugs,但是JSR-305处于非活动状态。(参见:什么是JSR 305的状态?) 源 org.jetbrains.annotations.NotNull 由IntelliJ IDEA IDE进行静态分析。 文件资料 lombok.NonNull 用于控制Lombok项目中的代码生成。 占位符注释,因为没有标准。 源, 文档 android.support.annotation.NonNull 支持注释包文档提供了Android中可用的标记注释 org.eclipse.jdt.annotation.NonNull Eclipse用于静态代码分析 文档

18
为什么我的Spring @Autowired字段为空?
注意:这旨在作为常见问题的规范答案。 我有一个带有字段()的Spring @Service类(MileageFeeCalculator),但是该字段是我尝试使用它时所用的。日志显示该bean和该bean都在创建,但是每当我尝试在服务bean上调用该方法时,都会得到一个a 。Spring为什么不自动接线该领域?@AutowiredrateServicenullMileageFeeCalculatorMileageRateServiceNullPointerExceptionmileageCharge 控制器类: @Controller public class MileageFeeController { @RequestMapping("/mileage/{miles}") @ResponseBody public float mileageFee(@PathVariable int miles) { MileageFeeCalculator calc = new MileageFeeCalculator(); return calc.mileageCharge(miles); } } 服务等级: @Service public class MileageFeeCalculator { @Autowired private MileageRateService rateService; // <--- should be autowired, is null public float mileageCharge(final int miles) { …

26
是否为空参数提供IllegalArgumentException或NullPointerException?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 3年前关闭。 我有一个简单的属性设置方法,null不适用于此特定属性。在这种情况下,我一直很痛苦:我应该扔IllegalArgumentException还是NullPointerException?从javadocs来看,两者似乎都合适。有某种可以理解的标准吗?还是这只是您应该做的任何事情之一,而且两者都是正确的?

10
没有StackTrace的Java中的NullPointerException
我的Java代码实例捕获了NullPointerException,但是当我尝试登录StackTrace(基本上最终调用Throwable.printStackTrace())时,我得到的是: java.lang.NullPointerException 还有其他人遇到吗?我尝试谷歌搜索“ java空指针空堆栈跟踪”,但没有遇到这样的事情。

12
Collectors.toMap中的Java 8 NullPointerException
如果其中一个值为“ null”,则Java 8 Collectors.toMap会抛出a NullPointerException。我不了解这种行为,地图可以包含空指针作为值,而没有任何问题。是否有充分的理由为什么值不能为null Collectors.toMap? 另外,是否有解决此问题的不错的Java 8方法,还是我应该还原为普通的for循环? 我的问题的一个例子: import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; class Answer { private int id; private Boolean answer; Answer() { } Answer(int id, Boolean answer) { this.id = id; this.answer = answer; } public int getId() { return id; } public void …

4
为什么要使用Optional.of而不是Optional.ofNullable?
使用Java 8 Optional类时,有两种方法可以将值包装在可选值中。 String foobar = <value or null>; Optional.of(foobar); // May throw NullPointerException Optional.ofNullable(foobar); // Safe from NullPointerException 我知道这Optional.ofNullable是唯一安全的使用方法Optional,但是为什么根本不Optional.of存在呢?为什么不总是使用Optional.ofNullable 并且始终保持安全呢?


11
没有空值的语言的最佳解释
当程序员抱怨空错误/异常时,经常有人问我们在没有空的情况下该怎么做。 我对选项类型的简洁性有一些基本了解,但是我没有足够的知识或语言技能来表达它。对以下内容的一个很好的解释是什么,使我们可以指向普通程序员,使之接近普通程序员? 默认情况下,不希望引用/指针为空 选项类型如何工作,包括简化检查空情况的策略,例如 模式匹配和 一元理解 替代解决方案,例如吃零信息 (我错过了其他方面)

9
为什么要使用Objects.requireNonNull()?
我注意到,Oracle JDK中使用了许多Java 8方法,如果给定的对象(参数)为,则会在Objects.requireNonNull()内部抛出NullPointerException该方法null。 public static <T> T requireNonNull(T obj) { if (obj == null) throw new NullPointerException(); return obj; } 但是NullPointerException,如果null取消引用对象,则无论如何都会抛出该异常。那么,为什么要做这个额外的null检查并抛出 NullPointerException呢? 一个明显的答案(或好处)是它使代码更具可读性,我同意。我很想知道Objects.requireNonNull()在方法开始时使用的其他原因 。

12
什么是NullPointerException,我该如何解决?
这个问题的答案是社区的努力。编辑现有答案以改善此职位。它目前不接受新的答案或互动。 Наэтотвопросестьответына 堆栈溢出нарусском:Чтотакое空指针异常икакегоисправить? 什么是空指针异常(java.lang.NullPointerException),什么原因导致它们? 可以使用哪些方法/工具确定原因,以阻止异常导致程序过早终止?

8
Android-如何替代“后退”按钮,使其无法完成我的活动?
我目前有一个活动,当它显示时,一个通知也将显示在通知栏中。 这样,当用户按下主页时,活动被推到后台,他们可以通过通知返回活动。 当用户按下“后退”按钮时,会出现问题,我的活动被销毁,但通知仍然保留,因为我希望用户能够按回去,但仍然能够通过通知进入活动。但是,当USER尝试执行此操作时,我会得到Null指针,因为它试图开始一项新活动,而不是恢复旧活动。 所以从本质上讲,我希望“后退”按钮的作用与“主页”按钮完全相同,这是到目前为止我尝试过的方法: @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (Integer.parseInt(android.os.Build.VERSION.SDK) < 5 && keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { Log.d("CDA", "onKeyDown Called"); onBackPressed(); } return super.onKeyDown(keyCode, event); } public void onBackPressed() { Log.d("CDA", "onBackPressed Called"); Intent setIntent = new Intent(Intent.ACTION_MAIN); setIntent.addCategory(Intent.CATEGORY_HOME); setIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(setIntent); return; …

8
安卓 片段getActivity()有时会返回null
在开发人员控制台错误报告中,有时我会看到NPE问题的报告。我不明白我的代码有什么问题。在模拟器和我的设备上,应用程序无需强制关闭即可正常运行,但是,某些用户在调用getActivity()方法时会在片段类中获得NullPointerException。 活动 pulic class MyActivity extends FragmentActivity{ private ViewPager pager; private TitlePageIndicator indicator; private TabsAdapter adapter; @Override public void onCreate(Bundle savedInstanceState) { pager = (ViewPager) findViewById(R.id.pager); indicator = (TitlePageIndicator) findViewById(R.id.indicator); adapter = new TabsAdapter(getSupportFragmentManager(), false); adapter.addFragment(new FirstFragment()); adapter.addFragment(new SecondFragment()); indicator.notifyDataSetChanged(); adapter.notifyDataSetChanged(); // push first task FirstTask firstTask = new FirstTask(MyActivity.this); …


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.