小编tro*_*yal的帖子

"#"符号在UML类图中的含义是什么?

我在Nutshell(O'Reilly)中阅读算法,并在类图中遇到了这个符号.我的猜测是,这意味着会员受到保护,但我想知道是否有人确切知道这意味着什么.

uml

63
推荐指数
3
解决办法
8万
查看次数

如何在Java中使用foreach循环来遍历HashMap中的值?

我正在尝试编译以下代码:

private String dataToString(){
    Map data = (HashMap<MyClass.Key, String>) getData();
    String toString = "";
    for( MyClass.Key key: data.keySet() ){
        toString += key.toString() + ": " + data.get( key );
    return toString;
}
Run Code Online (Sandbox Code Playgroud)

我在for行中遇到错误:

incompatible types
found : java.lang.Object
required: MyClass.Key

getData()方法返回一个Object(但在这种情况下Object返回的HashMap结构). MyClass.Key是我为我的应用程序创建的枚举(在另一个类文件中MyClass).

当我创建一个具有相同结构的foreach循环时MyClass.java,我没有遇到这个问题.

我究竟做错了什么?

java foreach hashmap

37
推荐指数
4
解决办法
10万
查看次数

如何为除最后一行之外的所有行追加换行符?

我正在迭代HashMap(请参阅我之前的问题以获取更多详细信息)并构建一个由Map中包含的数据组成的字符串.对于每个项目,我将有一个新行,但对于最后一项,我不想要新行.我怎样才能做到这一点?我以为我可以这么检查,看看这个条目是否是最后一个,但我不确定如何实际做到这一点.

谢谢!

java foreach newline

32
推荐指数
5
解决办法
9万
查看次数

如何检查ArrayList的元素是否都包含在另一个ArrayList中

如何轻松检查一个ArrayList中的所有元素是否都是另一个ArrayList的元素?

java arraylist subset containment

22
推荐指数
1
解决办法
1万
查看次数

如何使用Ant将文件复制到现有JAR中?

我有一个项目需要访问自己的JAR文件中的资源.当我为项目创建JAR文件时,我想将一个目录复制到该JAR文件中(我想ZIP相当于将目录"添加"到现有的ZIP文件中).我只希望在创建JAR之后发生复制(如果我清理并删除JAR文件,我显然不希望复制发生).

目前构建文件如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<project name="foobar" basedir=".." default="jar">

    <!-- project-specific properties -->
    <property name="project.path" value="my/project/dir/foobar" />

    <patternset id="project.include">
        <include name="${project.path}/**" />
    </patternset>
    <patternset id="project.jar.include">
        <include name="${project.path}/**" />
    </patternset>

    <import file="common-tasks.xml" />

    <property name="jar.file" location="${test.dir}/foobar.jar" />    
    <property name="manifest.file" location="misc/foobar.manifest" />
</project>
Run Code Online (Sandbox Code Playgroud)

一些构建任务是从另一个文件(common-tasks.xml)调用的,我无法在此处显示.

ant jar

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

如何指定JAXB用于编组/解组数据的适配器?

有没有办法指定JAXB用于在我的XML模式中封送/解组对象的适配器?

例如,如果我想将以下内容解析为整数:

<SpecialValue>0x1234</SpecialValue>
Run Code Online (Sandbox Code Playgroud)

我可以在我的架构中使用以下内容:

<xs:simpleType name="HexInt">
    <xs:annotation> 
        <xs:appinfo>
            <jaxb:javaType name="int" parseMethod="Integer.decode" />
        </xs:appinfo>
    </xs:annotation>  
    <xs:restriction base="xs:string">
        <xs:pattern value="0x[0-9a-fA-F]+" />
    </xs:restriction>
</xs:simpleType>
<xs:element name="SpecialValue" type="HexInt" />
Run Code Online (Sandbox Code Playgroud)

当我通过XJC工具运行模式,字符串"×1234"应该使用Integer.decode()作为价值为0x1234或4660十进制整数解码.生成的Adapter类正确反映了这一点:

public Integer unmarshal(String value) {
    return (Integer.decode(value));
}
Run Code Online (Sandbox Code Playgroud)

但是,当我想将值封送回XML元素(String字面值)时,Adapter类执行以下操作:

public String marshal(Integer value) {
    if (value == null) {
        return null;
    }
    return value.toString();
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,整数×1234的字符串值(4660十进制)是"4660",这不符合我的架构(因为它没有"0x"前缀).

如何告诉适配器我希望整数0x1234被编组为"0x1234"字符串文字?我希望能够在模式中执行此操作,以便我可以生成新的Java类而无需修改输出.这可能吗?

编辑:根据接受的答案,这是我做的工作:

我在com.example.Parse类中编写了一个名为toHexString()的方法:

public static String toHexString(int value)
{
    return ("0x" + Integer.toHexString(value));
}
Run Code Online (Sandbox Code Playgroud)

然后我将模式指向该方法进行打印:

<xs:simpleType name="HexInt">
    <xs:annotation> 
        <xs:appinfo>
            <jaxb:javaType name="int" parseMethod="Integer.decode" printMethod="com.example.Parse.toHexString" />
        </xs:appinfo>
    </xs:annotation>  
    <xs:restriction …
Run Code Online (Sandbox Code Playgroud)

java xml jaxb

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

USB驱动器LED闪光灯

我最近在阅读关于Arduino的Hello World应用程序的文章,我心里想,"我想知道我是否可以用我现在拥有的硬件做到这一点."

由于我没有Arduino,我抓起了一个我已经铺设的USB闪存驱动器并开始在谷歌上搜索有关它的信息.我在这方面没有找到太多有用的信息,所以我现在在这里问:我是否可以访问USB驱动器的硬件(例如LED)并通过某些编程环境与它进行交互(我当时认为C#应该可能有办法做到这一点)?

此外,与此主题相关 - 有谁知道USB驱动器使用什么样的命令?例如,SCSI存储设备具有标准化的命令集; ATA设备具有类似的协议.如何向USB存储设备发出简单的读/写命令?

hardware embedded usb led

3
推荐指数
1
解决办法
4092
查看次数

用java发出硬盘驱动器命令

有谁知道在Java中向硬盘驱动器发出命令的方法?Java甚至支持这种硬件交互吗?

例如,如果我有一个我想查询的SCSI硬盘驱动器,是否有预先存在的Java方法来执行此操作,或者我是否必须自己编写?

http://en.wikipedia.org/wiki/SCSI有一些关于SCSI命令的一般信息,以防您不熟悉.

java scsi hard-drive

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

如何编写一个类来支持它所代表的结构的多个版本?

假设我想要一个表示内存中数据结构的类.在此结构中,前两个字节表示它的结构版本.后面的数据的顺序和大小取决于结构的版本.

例如:版本1是一个10字节的结构,如下所示:

  • 字节偏移0:格式版本(2个字节)
  • 字节偏移2:数据部分A(4字节)
  • 字节偏移6:数据部分B(4字节)

版本2是一个20字节的结构,如下所示:

  • 字节偏移0:格式版本(2个字节)
  • 字节偏移2:数据部分A(8字节)
  • 字节偏移量10:数据部分B(6个字节)
  • 字节偏移16:数据部分C(4字节)

我希望我的类能够支持这两个版本,而不必让类的用户指定要使用的版本.也就是说,当构造对象时,它应该能够使用Format Version字段来确定其结构应该是什么.然后,应根据结构适当地创建每个字段的getter/setter.我还希望将来能够添加对其他结构版本的支持.每个新版本的结构很可能包含与旧版本相同的所有字段,但可能每个字段的分配长度更长,也许还有一些新添加的字段.

据我所知,我唯一的限制是格式版本字段始终出现在字节偏移0处,并且总是2个字节长.

那么,有可能实现我的目标吗?

java

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

标签 统计

java ×6

foreach ×2

ant ×1

arraylist ×1

containment ×1

embedded ×1

hard-drive ×1

hardware ×1

hashmap ×1

jar ×1

jaxb ×1

led ×1

newline ×1

scsi ×1

subset ×1

uml ×1

usb ×1

xml ×1