在我的C++时代被教授关于C风格演员的邪恶,我很高兴首先发现在Java 5中java.lang.Class
已经获得了一种cast
方法.
我认为最后我们有一个处理铸造的OO方式.
结果Class.cast
与static_cast
C++不同.它更像是reinterpret_cast
.它不会在预期的位置生成编译错误,而是会延迟到运行时.这是一个简单的测试用例,用于演示不同的行为.
package test;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
public class TestCast
{
static final class Foo
{
}
static class Bar
{
}
static final class BarSubclass
extends Bar
{
}
@Test
public void test ( )
{
final Foo foo = new Foo( );
final Bar bar = new Bar( );
final BarSubclass bar_subclass = new BarSubclass( );
{
final Bar bar_ref = bar;
}
{ …
Run Code Online (Sandbox Code Playgroud) 我在引擎盖下查看EnumSet.allOf
它看起来非常有效,特别是对于少于64个值的枚举.
基本上所有集合共享所有可能的枚举值的单个数组,并且唯一的另一条信息是位掩码,如果allOf
是一次设置的话.
另一方面,Enum.values()似乎有点黑魔法.此外,它返回一个数组,而不是一个集合,因此在许多情况下,它必须使用Arrays.asList()进行修饰,以便在任何需要收集的地方使用.
那么,应该EnumSet.allOf
更优选Enum.values
吗?
更具体地说,for
应该使用哪种形式的迭代器:
for ( final MyEnum val: MyEnum.values( ) );
Run Code Online (Sandbox Code Playgroud)
要么
for ( final MyEnum val: EnumSet.allOf( MyEnum.class ) );
Run Code Online (Sandbox Code Playgroud) 对于maven 2它曾经是
M2_HOME/lib目录/ Maven的2.2.1-uber.jar:组织/阿帕奇/的Maven /项目/ POM-4.0.0.xml
但3.0.x没有一个jar.
是否可以在bash脚本中使用线程.我在java中有一个驱动程序类,我试图同时运行多个实例.我知道这样做的唯一方法是在bash中使用线程,但我不确定这是否可能.任何帮助,将不胜感激
我想拥有EnumSet的所有效率并传递它,而不必担心有人会修改它.
我正在通过云形成脚本创建一个实例.
我发现连接操作系统分区的唯一方法是通过"BlockDeviceMappings"属性.(我之前尝试过使用"Volumes"属性,但实例无法挂载,系统告诉我/ dev/sda已经映射并回滚了实例创建)
这是我的模板的相关部分:
"Resources" :
{
"Ec2Instance" :
{
"Type" : "AWS::EC2::Instance",
"Properties" :
{
"BlockDeviceMappings" :
[{
"DeviceName" : "/dev/sda",
"Ebs" :
{
"VolumeSize" : { "Ref" : "RootVolumeSize" },
"SnapshotId" :
{ "Fn::FindInMap" : [ "RegionMap",
{ "Ref" : "AWS::Region" }, "RootVolumeSnapshotId" ]
}
}
}],
...
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,如何标记Ebs卷,我在这里用"BlockDeviceMappings"属性创建?我没有找到明显的解决方案.
谢谢.
编译具有内部类的泛型类时遇到问题.该类扩展了一个泛型类,也就是内部类.
这里实现的接口:
public interface IndexIterator<Element>
extends Iterator<Element>
{
...
}
Run Code Online (Sandbox Code Playgroud)
通用超类:
public abstract class CompoundCollection<Element, Part extends Collection<Element>>
implements Collection<Element>
{
...
protected class CompoundIterator<Iter extends Iterator<Element>>
implements Iterator<Element>
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
具有编译器错误的通用子类:
public class CompoundList<Element>
extends CompoundCollection<Element, List<Element>>
implements List<Element>
{
...
private class CompoundIndexIterator
extends CompoundIterator<IndexIterator<Element>>
implements IndexIterator<Element>
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
错误是:
type parameter diergo.collect.IndexIterator<Element> is not within its bound
extends CompoundIterator<IndexIterator<Element>>
^
Run Code Online (Sandbox Code Playgroud)
怎么了?代码用eclipse编译,但不用java 5编译器编译(我在mac和eclipse 3.5上使用ant和java 5).不,我无法将其转换为静态内部类.
有没有更好的方法在JSP中使用常量:
<%@ page import="static package.Interface.NAME"%>
Run Code Online (Sandbox Code Playgroud)
使用这些是否有任何缺点(混合代码/内容之外)?
谢谢!
我想在HTML页面中显示异常跟踪.
一种方法是在异常跟踪中转义HTML特殊字符并将其转储到<pre>
标记内.
虽然它有效,但效率非常低.我认为一种方法是用CDATA包裹跟踪.我试过了,但没有显示出来.
我的问题,这可以吗?
这是我的微弱尝试.
<pre><![CDATA[blah, blah, blah with <>
and blah blah blah with &
and more blah, blah]]></pre>
Run Code Online (Sandbox Code Playgroud) 今天我访问了官方Maven网站,并惊讶地发现其中列出了3个版本:3.0.5,3.1.1和3.2.1
我目前正在使用3.0.5,并想知道我是否应该升级到更新版本.
不幸的是,网站上没有一个单词关于版本之间有什么不同,以及是否建议升级,以及升级到什么版本.
任何人都可以指向相关资源吗?
java ×6
enums ×2
generics ×2
maven ×2
amazon-ec2 ×1
bash ×1
casting ×1
cdata ×1
collections ×1
html ×1
inheritance ×1
java-7 ×1
jsp ×1
jspinclude ×1
linux ×1
maven-3 ×1
terminal ×1
xhtml ×1