小编bey*_*ddc的帖子

用Java中的类替换枚举构造仍然相关吗?

我正在阅读Joshua Bloch在2008年发表的有效Java,其中一个技巧是用类替换枚举结构.这是本书中显示的示例.

public class Suit {
    private final String name;
    public Suit(String name) { this.name = name; }
    public String toString() { return name; }
    public static final Suit CLUBS = new Suit("clubs");
    public static final Suit DIAMONDS = new Suit("diamonds");
    public static final Suit HEARTS = new Suit("hearts");
    public static final Suit SPADES = new Suit("spades");
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,由于Java现在支持枚举类型,使用上述方法仍然是个好主意吗?这是Java枚举类型的示例.

public enum Day {
    SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
    THURSDAY, FRIDAY, SATURDAY 
}
Run Code Online (Sandbox Code Playgroud)

java enums

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

在React.js中为scroll事件添加事件侦听器后没有得到回调

我按照React.js中的帖子 更新样式onScroll上的指令来注册滚动事件的事件监听器.

我有一个React组件,它从React-Bootstrap库中呈现一个Table组件https://react-bootstrap.github.io/

我想我正确地注册了事件监听器,但我不确定为什么当我向下滚动表时,我的handleScroll()回调没有被调用.是因为事件监听器没有在实际表本身上注册吗?

感谢您花时间阅读我的问题.任何反馈都表示赞赏.

这是我如何注册事件监听器的片段.

  handleScroll: function(event) {
    console.log('handleScroll invoked');
  },

  componentDidMount: function() {
    console.log('componentDidMount invoked');
    window.addEventListener('scroll', this.handleScroll);
  },

  componentWillUnmount: function() {
    console.log('componentWillUnmount invoked');
    window.removeEventListener('scroll', this.handleScroll);
  },
Run Code Online (Sandbox Code Playgroud)

这是我的渲染功能的片段.

  render: function() {

    var tableRows = this.renderTableRow(this.props.sheet);

    return (
      <Table striped bordered condensed hover>
        <TableHeaderContainer
          tableTemplateName={this.props.tableTemplateName}
          sheetName={this.props.sheet.name}/>
        <tbody>
          {tableRows}
        </tbody>
      </Table>
    );
  }
Run Code Online (Sandbox Code Playgroud)

reactjs react-bootstrap

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

有没有办法通过Java发送ARP请求?

有没有办法在Java应用程序中发送ARP请求?我知道ARP在TCP和UDP下是一层,因此默认情况下Java无法发送ARP请求.我只是想知道是否有任何第三方Java库允许您发送ARP请求.

为了捕获ARP回复,我知道我可以使用jpcap来解决部分问题.

谢谢

java arp

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

JAXB编译问题 - [错误]属性"任何"已定义

我正在尝试为xccdf-1.1.4.xsd创建JAXB绑定,这是一个可以从XCCDF Schema Location获取的标准模式

我目前正在使用EclipseLink MOXy作为我的JAXB实现,因为我喜欢它也可以生成JSON绑定.

我修复了几次使用外部绑定XML命中臭名昭着的"[ERROR]属性"值"已定义"错误,现在我遇到了错误

[ERROR] Property "Any" is already defined. Use &lt;jaxb:property> to resolve this conflict.
line 441 of file:/home/dchu/Playground/Java/eclipselink_moxy/xccdf_1.1.4/xccdf-1.1.4.xsd

[ERROR] The following location is relevant to the above error
line 444 of file:/home/dchu/Playground/Java/eclipselink_moxy/xccdf_1.1.4/xccdf-1.1.4.xs
Run Code Online (Sandbox Code Playgroud)

下面是XML架构中发生错误的行的片段.

<xsd:sequence>
    <xsd:choice minOccurs="1" maxOccurs="1">
      <xsd:any namespace="http://purl.org/dc/elements/1.1/"
               minOccurs="1" maxOccurs="unbounded"/>
      <xsd:any namespace="http://checklists.nist.gov/sccf/0.1"
               processContents="skip" 
               minOccurs="1" maxOccurs="unbounded"/>
    </xsd:choice>
</xsd:sequence>
Run Code Online (Sandbox Code Playgroud)

有谁知道这里有什么不对吗?谢谢!

jaxb eclipselink moxy

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

仅当匹配星号是最后一个字符时才使用Java正则表达式

任何人都可以发现此代码中的任何错误?

    String value = "/files/etc/hosts/*";
    if (value.matches("\\*$")) {
        System.out.println("MATCHES!");
    }
Run Code Online (Sandbox Code Playgroud)

我想在字符串的最后一个字符是星号时进行一些操作.

语法对我来说是正确的,我在http://regexpal.com/上测试了它

提前致谢!

java regex

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

正则表达式,逗号必须遵循1或2位数字

我正在尝试编写一个正则表达式,确保是否有逗号,然后以下文本应为1或2位数字.

这是我到目前为止所拥有的.

(^\d{0,2})+(,\d{0,2})*$
Run Code Online (Sandbox Code Playgroud)

大多数情况下的工作,但它正在考虑以下有效.

12,22,,,,,,,,,, and 12,22,,,,,,,,,,12,12
Run Code Online (Sandbox Code Playgroud)

我做错了什么?谢谢!

regex

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

在/ s之间的另一个数字前面添加一个数字?

我有一堆看起来像这样的字符串

/files/etc/hosts/2/ipaddr
/files/etc/hosts/2/canonical
/files/etc/hosts/2/alias[1]
/files/etc/hosts/3/ipaddr
/files/etc/hosts/3/canonical
/files/etc/hosts/3/alias[1]
/files/etc/hosts/4/ipaddr
/files/etc/hosts/4/canonical
/files/etc/hosts/4/alias[1]
Run Code Online (Sandbox Code Playgroud)

我想在/和之间的任何数字前面加一个0 /.在追加之后,结果看起来应该是这样的......

/files/etc/hosts/02/ipaddr
/files/etc/hosts/02/canonical
/files/etc/hosts/02/alias[1]
/files/etc/hosts/03/ipaddr
/files/etc/hosts/03/canonical
/files/etc/hosts/03/alias[1]
/files/etc/hosts/04/ipaddr
/files/etc/hosts/04/canonical
/files/etc/hosts/04/alias[1]
Run Code Online (Sandbox Code Playgroud)

我很确定我需要使用简单的正则表达式进行搜索.我认为/\d*/应该足够但我不知道如何修改字符串以插入数字0.有人可以给我一些建议吗?

java regex

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

Java ProcessBuilder无法执行我的命令

不使用ProcessBuilder,我可以通过提示成功运行此命令.

winexe --user \administrator --password foo //192.168.1.13 "msiexec /qn /i \setup.msi"
Run Code Online (Sandbox Code Playgroud)

我正在通过这个构造函数创建我的ProcessBuilder

ProcessBuilder(String[] commands)
Run Code Online (Sandbox Code Playgroud)

我传递给ProcessBuilder的String []参数如下

[0] winexe
[1] --user \administrator
[2] --password foo
[3] //192.168.1.13
[4] "msiexec /qn /i \setup.msi"
Run Code Online (Sandbox Code Playgroud)

输出如下所示,所以我知道ProcessBuilder正在执行命令,除了我传入的参数似乎不正确.谁能发现我做错了什么?

winexe version 0.90
This program may be freely redistributed under the terms of the GNU GPL
Usage: winexe [-?|--help] [--usage] [-d|--debuglevel DEBUGLEVEL]
        [--debug-stderr] [-s|--configfile CONFIGFILE] [--option=name=value]
        [-l|--log-basename LOGFILEBASE] [--leak-report] [--leak-report-full]
        [-R|--name-resolve NAME-RESOLVE-ORDER]
        ...
Run Code Online (Sandbox Code Playgroud)

java

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

标签 统计

java ×5

regex ×3

arp ×1

eclipselink ×1

enums ×1

jaxb ×1

moxy ×1

react-bootstrap ×1

reactjs ×1