小编jum*_*mar的帖子

如何确保Java类中的字段永远不会为null

我正在寻找一种干净,安全的方法来确保类的字段永远不会被设置为null.我希望字段值在类构造函数中设置一次,以后再也不会修改.我认为他在C#中的readonly关键字允许这样做.有没有办法在Java中做同样的事情?

class foo
{

  private Object bar;

  public foo(Object pBar)
  {
    if(pBar == null)
    {
      bar = new Object();
    }
    else
    {
      bar = pBar
    }
  }

  // I DO NOT WANT ANYONE TO MODIFY THE VALUE OF bar OUT OF THE CONSTRUCTOR

}
Run Code Online (Sandbox Code Playgroud)

java null field

5
推荐指数
3
解决办法
319
查看次数

java:使用原始类型作为方法参数会删除参数成员中的所有参数化类型信息

请解释为什么如果我在方法 test() 中使用原始类型 A ,我的类型列表中的 get() 方法返回一个对象而不是 B 。:

public class test
{
    public class B{}
    public class C{}

    public class A<T extends C>
    {
        private List<B> aBList;

        public List<B> mGetBList()
        {
            return aBList;
        }
    }

    public test(A pA) // Use of raw type - this is bad, I know!
    {
        B lB = pA.mGetBList().get(0); // Compile error: Type mismatch: 
                                      // cannot convert from Object to test.B   

    }
}
Run Code Online (Sandbox Code Playgroud)

如果我声明

public test(A<?> pA)
Run Code Online (Sandbox Code Playgroud)

get() 方法按预期返回 B。

java generics

5
推荐指数
1
解决办法
597
查看次数

如何在 Visual Studio 中中断程序的第一个指令

我想告诉 Visual Studio 在程序的第一条指令处中断(在main()调用函数之前)。我记得可以在 CodeWarrior IDE 中进行嵌入式开发,这在 Visual Studio 中可行吗?

debugging breakpoints visual-studio-2010

5
推荐指数
1
解决办法
3589
查看次数

Java swing:删除重量级jogl组件以在同一位置添加轻量级组件时的剩余

在我的swing应用程序中,当我从主要组件中移除jogl GLCanvas以在同一位置添加jPanel时,会出现一些显示故障:在旧组件被删除之前和添加新组件之前,剩下的就是剩余的之前在GLCanvas顶部显示的所有弹出菜单的图像在主要组件的背景上可见.

我怎么能避免这个?

java swing jogl

4
推荐指数
1
解决办法
321
查看次数

使用Bytebuffers和NIO时如何避免OutOfMemoryError?

我正在使用ByteBuffers并将FileChannels二进制数据写入文件.当为大文件或连续多个文件执行此操作时,我得到一个OutOfMemoryError例外.我在其他地方读过,Bytebuffers与NIO一起使用已被打破,应该避免.你们中是否有人遇到过这种问题,并找到了一个有效地在java文件中保存大量二进制数据的解决方案?

jvm选项是否可行-XX:MaxDirectMemorySize

java nio bytebuffer filechannel

3
推荐指数
2
解决办法
7798
查看次数