小编Dev*_*eva的帖子

将类作为final并将类构造函数设置为private是有区别的

最终类和将类构造函数作为私有类之间的区别究竟是什么.

我知道两者都不能被分类(如果我错了,请纠正我).他们有什么不同吗?

java constructor final

17
推荐指数
2
解决办法
8274
查看次数

java嵌套if或single if

我对以下代码块(Sample)的执行存在基本疑问:

String version = computer.getSoundcard().getUSB().getVersion();
Run Code Online (Sandbox Code Playgroud)

NullPointerException如果Soundcard不存在,可能会抛出

所以我有 ,

选项1 :

if(computer!=null && 
        computer.getSoundCard() !=null && 
                 computer.getSoundCard().getUSB()!=null) {
   version = computer.getSoundcard().getUSB().getVersion();
}
Run Code Online (Sandbox Code Playgroud)

选项2:

if(computer !=null){
   SoundCard sc = computer.getSoundCard();
   if(sc!=null){
      USB usb = sc.getUSB();
      if(usb!=null){
         version = usb.getVersion();
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

根据我的理解,选项1将有额外的开销,因为它必须多次评估相同的表达式,如computer.getSoundCard() 3次,computer.getSoundCard().getUSB()2次.

我的理解是否正确?

编辑1:更改了选项2

version = computer.getSoundcard().getUSB().getVersion();
Run Code Online (Sandbox Code Playgroud)

java if-statement

15
推荐指数
2
解决办法
972
查看次数

覆盖java中的方法约束

在Java中重写方法具有以下功能:

1> Overrinding方法应该与Parent类方法具有相同的参数列表.

2>返回类型应该是父类方法的返回类型的相同/子类.

3>访问级别应与父类方法相同或更少限制.

4> overriden方法可以抛出相同或更窄的异常,而不是更广泛的异常.

*只是想知道为什么这么点*

*2 - 为什么子类为什么不是超类呢?*

3 - 为什么访问级别应该限制较少?

4 - 为什么它应该抛出狭窄的异常?

根据我的理解它只是如果我创建一个父类refrence创建一个子类对象并尝试运行每个方案然后

让我们假设A是父类,B是子类,它们都有方法printAndReturnSomething()

public class A{

       public B printAndReturnSomething(){
                S.O.P("Inside A Print");
                return new B();
              }
}
Run Code Online (Sandbox Code Playgroud)

现在我们将子类B作为

public class B extends A{
       public A printAndReturnSomething(){ // I know this isn't possible to return A but had it been then
                S.O.P("Inside A Print");
                return new A();
              }
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我做这样的事情

A a =new B();
Run Code Online (Sandbox Code Playgroud)

现在因为我有一个A的引用,所以我希望返回类型是B类型

B returnedValue=a.printAndReturnSomething(); …
Run Code Online (Sandbox Code Playgroud)

java overriding

5
推荐指数
2
解决办法
1531
查看次数

handler.post(runnable)并不总是在android中执行run方法

我在主ui线程(mUIHandler)和工作线程(其他线程)中创建了一个Handler实例,当我尝试执行runnable的run方法时,run方法几乎被执行了10次,但是有那个1次没有被执行.

mUIHandler.post(uiRunnable) - >它是否总能保证执行runnable中的run方法?

我甚至添加了日志方法来检查,并且可以看到日志直到post方法innvocation被执行但是run方法日志没有显示.

帖子(可运行)如何在内部工作?是否保证ui线程(带有处理程序的线程)会在调用post后立即执行此操作?

任何帮助,将不胜感激.

谢谢!

multithreading android handler

5
推荐指数
2
解决办法
7517
查看次数

在这种情况下使用DataStructure

我有以下形式的数据 -

01/04/2011  - {00:00,1.0} ; {01:00,2.0} ; {02:00,1.5} ;{04:00,2.3} 
02/04/2011  - {00:00,2.0} ; {01:00,2.1} ; {02:00,1.5} ;{04:00,2.3}
03/04/2011  - {00:00,3.0} ; {01:00,2.0} ; {02:00,1.6} ;{04:00,2.3}
04/04/2011  - {00:00,1.0} ; {01:00,2.5} ; {02:00,1.57} ;{04:00,2.3}
05/04/2011  - {00:00,1.9} ; {01:00,2.7} ; {02:00,1.5} ;{04:00,2.3}
06/04/2011  - {00:00,1.08} ; {01:00,2.02} ; {02:00,1.9} ;{04:00,2.3}
07/04/2011  - {00:00,1.7} ; {01:00,2.0} ; {02:00,1.10} ;{04:00,2.3}
Run Code Online (Sandbox Code Playgroud)

我必须将它们存储在某些DataStructure中,以便我可以使用日期作为键来访问它们.同样,对于特定的日期,{k,v}对应按插入方式排序.

请建议哪个是在这种情况下使用的最佳DataStructure,以及应该使用它的原因.提前致谢!

java data-structures

0
推荐指数
1
解决办法
218
查看次数