小编ura*_*jah的帖子

为什么在这种情况下演员是必要的?

class MyClass {

   private String str;
   public MyClass(String str){
      this.str = str;
   }
   public int compare(Object o) {
      return str.compareTo(((MyClass)o).str); //line No.8
   }
}

class Client {
   public static void main(String[] args) {
      MyClass m = new MyClass("abc");
      MyClass n = new MyClass("bcd");
      System.out.println(m.compare(n));
   }
}
Run Code Online (Sandbox Code Playgroud)

为什么在这段代码中,(MyClass)o第8行的强制转换是必要的,尽管Client调用一个compare带有参数的方法,这些参数是MyClass类的实例?

当我compare在MyClass类中修改方法时,形成如下所示:

   public int compare(Object o) {
      System.out.println(o.getClass());
      System.out.println(((MyClass)o).getClass());
      return str.compareTo(((MyClass)o).str);
   }
Run Code Online (Sandbox Code Playgroud)

然后,客户端将产生以下结果:

class MyClass
class MyClass
Run Code Online (Sandbox Code Playgroud)

因此,我不明白为什么上面的演员是必需的,为什么我不能这样做(没有强制转换为MyClass):

   public int compare(Object o) {
      return str.compareTo(o.str); 
   }
Run Code Online (Sandbox Code Playgroud)

因为当我这样做时,我得到编译时错误:

str …
Run Code Online (Sandbox Code Playgroud)

java

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

多个 z 索引元素

我正在做一个项目,我对 z-index 属性有一个小问题。

这是我的代码:

(HTML)

 <div class="outer_obw">
  <div class="obw1">
    <div class="box" id="blue_box">
      <div id="inn_blue" class="inner_box"><p>Box1</p></div>
    </div>
  </div>

  <div class="main_box_content">
    <div class="back_box">
      <div class="main_box"> 

        <p id="texts">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>

      </div>
    </div>

    <div class="obw3">
        <div class="box" id="green_box">
          <div id="inn_green" class="inner_box"><p>Box2</p></div>
        </div>
      </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

(CSS)

.outer_obw {
   width: 78.5%;
   margin: …
Run Code Online (Sandbox Code Playgroud)

html css

2
推荐指数
1
解决办法
3724
查看次数

什么意思是"新列表()"表示法?

符号后的确切含义是什么?

List<Integer> list = new List<Integer>(){...}
Run Code Online (Sandbox Code Playgroud)

我可以说我创建了一个接口实例List<E>吗?而不是,因为我们无法在Java中创建任何接口的新实例.

下面是所有必须用这种表示法覆盖的方法.

但我不清楚究竟必须覆盖哪些方法.它们不是List<E>列表的所有方法或列表的超级接口 -Collection<E>, Iterable<E>

(没有eg hashCode()方法(如果它们都是List的方法)或者例如parallelStream()方法(如果它们都是List的Superinterfaces的继承方法))

List<Integer> list = new List<Integer>(){

        public boolean add(Integer e) {...}
        public void add(int index, Integer element) {...}
        public boolean addAll(Collection<? extends Integer> c) {...}
        public boolean addAll(int index, Collection<? extends Integer> c {...}                                 
        public void clear() {...}
        public boolean contains(Object o) {...}
        public boolean containsAll(Collection<?> c) {...}
        public Integer get(int index) {...}
        public int indexOf(Object o) {...}
        public boolean …
Run Code Online (Sandbox Code Playgroud)

java collections

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

标签 统计

java ×2

collections ×1

css ×1

html ×1