所以说我有一个扩展超类的子类.在什么情况下我需要显式键入super()以运行超类构造函数?
我正在看一本关于抽象类的书中的例子,当他们用非抽象子类扩展它时,子类的默认构造函数是空白的,并且有一个注释表明将调用超类的默认构造函数.与此同时,我也看到过这里有人问题没有明确调用的情况super().
区别于从子类的默认/非默认构造函数调用超类的默认/非默认构造函数?
我是初学者,我一直都认为重复代码是不好的.但是,似乎为了不这样做,通常需要额外的方法调用.假设我有以下课程
public class BinarySearchTree<E extends Comparable<E>>{
private BinaryTree<E> root;
private final BinaryTree<E> EMPTY = new BinaryTree<E>();
private int count;
private Comparator<E> ordering;
public BinarySearchTree(Comparator<E> order){
ordering = order;
clear();
}
public void clear(){
root = EMPTY;
count = 0;
}
}
Run Code Online (Sandbox Code Playgroud)
将clear()方法中的两行复制并粘贴到构造函数中而不是调用实际方法,对我来说是否更为理想?如果是这样,它会产生多大的差异?如果我的构造函数进行了10次方法调用,每次调用只是将一个实例变量设置为一个值,该怎么办 什么是最好的编程实践?
我想在finally块中关闭我的流,但它会抛出一个IOException所以我似乎必须try在finally块中嵌套另一个块才能关闭流.这是正确的方法吗?看起来有点笨重.
这是代码:
public void read() {
try {
r = new BufferedReader(new InputStreamReader(address.openStream()));
String inLine;
while ((inLine = r.readLine()) != null) {
System.out.println(inLine);
}
} catch (IOException readException) {
readException.printStackTrace();
} finally {
try {
if (r!=null) r.close();
} catch (Exception e){
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud) 我正在阅读一本关于数据结构的书.目前我在图表上,下面的代码是图表的顶点部分.
class Vertex<E>{
//bunch of methods
public boolean equals(Object o){
//some code
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试实现这个equals方法时,我的编译器抱怨没有检查参数的类型,只是允许任何对象被发送.对我来说,为什么该参数不应该是Vertex而不是Object,这似乎有点奇怪.有没有理由为什么作者这样做或者这是一个错误或过时的例子?
我只有IntelliJ IDEA的社区版本,所以它没有完整的支持,但我想要它做的就是编译和识别Java EE类.到目前为止,我已经通过将glassfish-> modules中的所有JAR文件复制到我的项目文件夹中,然后在该文件夹上设置我的模块依赖项来实现它.是否有其他方法可以在不复制数百个JAR文件的情况下执行此操作,或者如果不升级到完整版本则无法实现?
我无法找到执行以下操作的方法:
让我们在我的application.html.erb中说我有以下内容
<div id="one" >
<%= yield %>
</div>
Run Code Online (Sandbox Code Playgroud)
然后我想要另一个布局文件asdf.html.erb
<div id="two">
<%= yield %>
</div>
Run Code Online (Sandbox Code Playgroud)
我想要最终输出
<div id="one>
<div id="two">
<%= yield %>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
可能吗?谢谢.
我有一个matlab工作区,其中所有变量都是使用load命令从.mat文件加载的.现在,我想遍历所有这些对象并对它们执行操作.
有没有明确说明他们的名字访问对象?例如工作区(1)?
我刚刚使用jdk7创建了一个jar文件.我试过运行它,但一直出错.事实证明它指的是jre6而不是jdk7中的jre.所以,我用以下命令来改变它
ftype jarfile ="C:\ path to jre\bin\javaw.exe"-jar"%1"%*
之后,我尝试再次双击我的jar文件,但它弹出一个窗口,要求我选择一个程序来打开它.当我选择与上面相同的javaw.exe文件时,它会运行但会立即退出而不执行任何操作.我可以通过执行java -jar file.jar命令在cmd中运行它.我甚至尝试删除.jar注册表项,但这让我回到了让我选择要打开的程序的地步.如果重要的话,我正在运行Windows 7终极版.
编辑:在注册表中有3个子键:OpenWithList,OpenWithProgids和UserChoice.我已将所有默认值更改为上面的路径,但UserChoice除外,它不允许我从regedit编辑它.当我删除它并尝试运行jar文件时,它会打开选择一个程序再次打开窗口.由于某种原因,它忽略了其他注册表项
我正在创建一个名为的表Index.这是迁移:
class CreateIndices < ActiveRecord::Migration
def change
create_table :indices, {:id => false} do |t|
t.string :name
t.float :returns, array: true, default: []
t.float :navs, array: true, default: []
t.float :sharpe
t.timestamps
end
execute "ALTER TABLE indices ADD PRIMARY KEY (name);"
end
end
Run Code Online (Sandbox Code Playgroud)
一切正常.我在另一个Stack Overflow问题中看到,我必须set_primary_key在我的模型中包含命令才能使它工作,所以我在index.rb中有以下内容
class Index < ActiveRecord::Base
set_primary_key :name
end
Run Code Online (Sandbox Code Playgroud)
除了这两个文件之外,我没有更改默认的Rails脚手架(该应用程序是使用Postgres创建的默认数据库).当我去localhost:3000/indices,我得到以下错误
undefined method `set_primary_key' for #<Class:0x37132e0>
Run Code Online (Sandbox Code Playgroud)
如果我注释掉set_primary_key它会加载常规的空脚手架,但我认为这并没有给我我想要的主键功能.我究竟做错了什么?
我有一个名为ImageButton的自定义按钮类,它扩展了JButton.在其中我有一个我想要调用的setEnabled方法而不是JButton的setEnabled方法.
我的代码如下.在我的另一个类中,我创建了一个ImageButton的新实例,但是当我尝试使用setEnabled方法时,它会直接进入JButton的setEnabled方法.甚至在我运行代码之前,我的IDE就告诉我从未使用过ImageButton的setEnabled方法.如果我将方法更改为"SetOn",它可以正常工作.那么为什么我不能使用与超类相同的名字呢?我认为它应该隐藏超类方法,如果它是相同的名称?
public class ImageButton extends JButton{
public ImageButton(ImageIcon icon){
setSize(icon.getImage().getWidth(null),icon.getImage().getHeight(null));
setIcon(icon);
setMargin(new Insets(0,0,0,0));
setIconTextGap(0);
setBorderPainted(true);
setBackground(Color.black);
setText(null);
}
public void setEnabled(Boolean b){
if (b){
setBackground(Color.black);
} else {
setBackground(Color.gray);
}
super.setEnabled(b);
}
}
Run Code Online (Sandbox Code Playgroud) java ×6
call ×1
constructor ×1
equals ×1
file-io ×1
finally ×1
inheritance ×1
jar ×1
java-ee ×1
jbutton ×1
layout ×1
matlab ×1
methods ×1
nested ×1
object ×1
performance ×1
primary-key ×1
stream ×1
subclass ×1
superclass ×1
swing ×1
try-catch ×1
types ×1
windows ×1
workspace ×1