Tag: nullpointerexception

Java:如何有效地检查空指针

有一些模式用于检查方法的参数是否已被赋予null值。 首先是经典之作。 它在自制代码中很常见,并且很明显可以理解。 public void method1(String arg) { if (arg == null) { throw new NullPointerException(“arg”); } } 其次,您可以使用现有框架。 该代码看起来更好一点,因为它只占用一行。 缺点是它可能会调用另一个方法,这可能会使代码运行速度稍慢,具体取决于编译器。 public void method2(String arg) { Assert.notNull(arg, “arg”); } 第三,你可以尝试调用一个没有副作用的方法。 这可能看起来很奇怪,但它比上述版本的令牌更少。 public void method3(String arg) { arg.getClass(); } 我没有看到广泛使用的第三种模式,感觉就像我自己发明了它一样。 我喜欢它的简洁性,因为编译器很有可能完全优化它或将其转换为单个机器指令。 我还使用行号信息编译我的代码,因此如果抛出NullPointerException ,我可以将其追溯到确切的变量,因为每行只有一个这样的检查。 您更喜欢哪种检查?为什么?

在Eclipse中调试android代码的最佳方法是什么?

我刚开始学习Eclipse,想知道我的应用程序中出错的原因。 我想知道他们是否像Visual Studio一样。 我的意思是我有Null指针exception,但即使在放入Breakpoint之后我也很困惑,导致错误发生的原因。 因为我是新手大部分时间我运行不好或代码不起作用。 我多么认清自己的错误。 有时我的代码不起作用,exception很难弄清楚我的代码会发生真正的问题。 有人检查代码并指导我如何找到它。 我的意思是如何知道空指针exception发生的位置。 public class MainActivity extends Activity { Set tasks = new HashSet(); final String prefName = “andorid”; SharedPreferences sp = getSharedPreferences(prefName, MODE_PRIVATE); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); SetupApp(); } // / Add the task in this function private void SetupApp() { tasks.add(“blah”); if (!sp.contains(“tasks”)) […]

JavaFX FileChooser引发错误(可能很容易修复,但仍然困惑)

我正在尝试使用以下代码打开FileChooser: package back_end.controllers; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.control.Button; import javafx.scene.control.ListView; import javafx.scene.layout.BorderPane; import javafx.stage.FileChooser; import java.io.File; import java.net.URL; import java.util.ResourceBundle; /** * Created by Quinn McHugh on 4/15/2014. */ public class StartScreen_Controller implements Initializable { @FXML private ListView lstRecents; @FXML private Button btnBrowse; @FXML private BorderPane borderPane; @Override public void initialize(URL fxmlFileLocation, ResourceBundle resources){ […]

空指针exception

有可能这可能是一个重复的问题。 我将一个String变量初始化为null。我可能会或可能不会使用value更新它。现在我想检查这个变量是否不等于null和我尝试的任何东西我得到一个空指针exception。我不能抛出nullpointerexception,因为它很昂贵。有任何解决方法是有效的.TIA

在Java中优雅地避免NullPointerException

考虑这一行: if (object.getAttribute(“someAttr”).equals(“true”)) { // …. 显然这行是一个潜在的错误,该属性可能为null ,我们将得到一个NullPointerException 。 所以我们需要将它重构为以下两种选择之一: 第一种选择: if (“true”.equals(object.getAttribute(“someAttr”))) { // …. 第二种选择: String attr = object.getAttribute(“someAttr”); if (attr != null) { if (attr.equals(“true”)) { // …. 第一个选项难以阅读但更简洁,而第二个选项在意图上是明确的,但是很冗长。 在可读性方面,您更喜欢哪个选项?

Java数组,NullPointerException?

我宣布了两张牌: Card card1 = new Card(‘3’, Card.Suit.clubs); Card card2 = new Card(‘T’, Card.Suit.diamonds); 这有效: Hand hand1 = new Hand(); hand1.takeCard(card1); 但为什么这不起作用? 它在第二行给我一个NullPointerException: Hand[] hand = new Hand[2]; hand[0].takeCard(card2);

JPA / Hibernate静态元模型属性未填充 – NullPointerException

我想将JPA2 Criteria API与元模型对象一起使用,这看起来很简单: … Root albm = cq.from(JPAAlbum.class); … albm.get(JPAAlbum_.theme) … ; 但是这个Root.get总是抛出一个NullPointerException 。 JPAAlbum_.theme是由Hibernate自动生成的,看起来像 public static volatile SingularAttribute theme; 但它显然从未填充过。 我错过了框架初始化的一步吗? 编辑:这是我在崩溃时如何使用JPA和元模型的片段: CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaQuery cq = cb.createQuery(JPAAlbum.class) ; Root albm = cq.from(JPAAlbum.class); cq.where(cb.equal(albm.get(JPAAlbum_.theme).get(JPATheme_.id), session.getTheme().getId())) ; ( JPAAlbum_是一个类,所以我只是import之前)和相关的JPAAlbum_ : Caused by: java.lang.NullPointerException at org.hibernate.ejb.criteria.path.AbstractPathImpl.get(AbstractPathImpl.java:138) at net.wazari.dao.jpa.WebAlbumsDAOBean.getRestrictionToAlbumsAllowed(WebAlbumsDAOBean.java:55) 编辑2: 在JBoss EntityManager指南中,我可以看到 当构建Hibernate EntityManagerFactory时,它将查找每个托管类型的规范元模型类,如果它找到任何它将向其中注入适当的元模型信息,如[JPA 2规范,第6.2节中所述] […]