小编Die*_*nné的帖子

在IntelliJ中使用Slf4j注释和Lombok时,"log has private access"错误

我正在使用Lombok向我的Java应用程序添加日志记录.我已经使用了一段时间,但自从我将我的IDE从IntelliJ 13社区版升级到14 Ultimate后,我得到以下编译错误(使用maven):

error: log has private access in SesameServer
Run Code Online (Sandbox Code Playgroud)

此错误源自以下的子类SesameServer:

@Slf4j
public class AnnotatorServices extends SesameServer {

  @Override
  protected void initialiseRDFStoreManager(Series<Parameter> parameters) throws RepositoryConfigException, RepositoryException {
      log.info("<< ------ Annotator Services ------- >>");
  }
}
Run Code Online (Sandbox Code Playgroud)

当然SesameServer也使用@Slf4j注释来添加日志记录.该@Slf4j注释添加一行:

 private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(SesameServer.class);
Run Code Online (Sandbox Code Playgroud)

在其中使用它的类(包括SesameServerAnnotatorServices其中SesameServer.class被当然取代AnnotatorServices.class).显然编译器认为我想使用log变量SesameServer而不是AnnotatorServices(两个类都有相同名称的变量).

我该如何防止这个问题,即SesameServer.log用来代替AnnotatorServices.log

java slf4j lombok intellij-14

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

没有“mailto:”的电子邮件地址是否允许作为 IRI?

W3C 的 RDF Turtle 文档中,我遇到了两个使用电子邮件地址作为 IRI 的示例(16 和 17):

_:b <http://xmlns.com/foaf/0.1/mbox> <bob@example.com> .
Run Code Online (Sandbox Code Playgroud)

据我了解,如果电子邮件地址前面带有适当的方案(mailto:bob@example.com. 如果上例中的电子邮件地址应该是有效的 URI,则该语句实际上应为:

_:b <http://xmlns.com/foaf/0.1/mbox> <mailto:bob@example.com> .
Run Code Online (Sandbox Code Playgroud)

这是文档中的错误还是 IRI(与 URI 相对)不需要方案?

rdf uri email-address iri turtle-rdf

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

使用独立应用程序将数据添加到HTTPRepository时,出现RDF4J RIO UnsupportedRDFormatException

我已经HTTPRepository初始化了一个仓库的URL。我使用RepositoryConnection来检索(天气)数据并将其添加到存储库。从Web服务检索数据,然后将其转换为RDF语句,并将其添加到存储库中。这是由独立应用程序定期完成的。

当我在IntelliJ中运行此应用程序时,一切正常。

为了在服务器上运行此应用程序,我创建了一个jar文件(包含所有依赖项)。该应用程序将按预期启动,并且能够从存储库中检索数据。

但是,当应用程序尝试数据写入存储库时,我得到了UnsupportedRDFormatException

org.eclipse.rdf4j.rio.UnsupportedRDFormatException: Did not recognise RDF format object BinaryRDF (mimeTypes=application/x-binary-rdf; ext=brf)
    at org.eclipse.rdf4j.rio.Rio.lambda$unsupportedFormat$0(Rio.java:568) ~[weatherData-1.0-SNAPSHOT-jar-with-dependencies.jar:na]
    at java.util.Optional.orElseThrow(Optional.java:290) ~[na:1.8.0_111]
    at org.eclipse.rdf4j.rio.Rio.createWriter(Rio.java:134) ~[weatherData-1.0-SNAPSHOT-jar-with-dependencies.jar:na]
    at org.eclipse.rdf4j.rio.Rio.write(Rio.java:371) ~[weatherData-1.0-SNAPSHOT-jar-with-dependencies.jar:na]
    at org.eclipse.rdf4j.rio.Rio.write(Rio.java:324) ~[weatherData-1.0-SNAPSHOT-jar-with-dependencies.jar:na]
    at org.eclipse.rdf4j.repository.http.HTTPRepositoryConnection.addModel(HTTPRepositoryConnection.java:588) ~[weatherData-1.0-SNAPSHOT-jar-with-dependencies.jar:na]
    at org.eclipse.rdf4j.repository.http.HTTPRepositoryConnection.flushTransactionState(HTTPRepositoryConnection.java:662) ~[weatherData-1.0-SNAPSHOT-jar-with-dependencies.jar:na]
    at org.eclipse.rdf4j.repository.http.HTTPRepositoryConnection.commit(HTTPRepositoryConnection.java:326) ~[weatherData-1.0-SNAPSHOT-jar-with-dependencies.jar:na]
    at org.eclipse.rdf4j.repository.base.AbstractRepositoryConnection.conditionalCommit(AbstractRepositoryConnection.java:366) ~[weatherData-1.0-SNAPSHOT-jar-with-dependencies.jar:na]
    at org.eclipse.rdf4j.repository.base.AbstractRepositoryConnection.add(AbstractRepositoryConnection.java:431) ~[weatherData-1.0-SNAPSHOT-jar-with-dependencies.jar:na]
    at nl.wur.fbr.data.weather.WeatherApp.retrieveData(WeatherApp.java:122) ~[weatherData-1.0-SNAPSHOT-jar-with-dependencies.jar:na]
    at nl.wur.fbr.data.weather.WeatherData$WeatherTask.run(WeatherData.java:105) [weatherData-1.0-SNAPSHOT-jar-with-dependencies.jar:na]
    at java.util.TimerThread.mainLoop(Timer.java:555) [na:1.8.0_111]
    at java.util.TimerThread.run(Timer.java:505) [na:1.8.0_111]
Run Code Online (Sandbox Code Playgroud)

发生错误的源代码是:

org.eclipse.rdf4j.rio.UnsupportedRDFormatException: Did not recognise RDF format object BinaryRDF (mimeTypes=application/x-binary-rdf; ext=brf)
    at …
Run Code Online (Sandbox Code Playgroud)

sesame exception rdf4j

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

NSTokenField没有开火行动

我有一个NSTokenField向对象(文档)添加标签.我想在将令牌添加到令牌字段时(当键入令牌化字符时)使用新标签更新对象.不幸的是,这似乎不起作用.在NSTokenField连接到我的控制器的动作,但这个动作方法不会被调用.

我也NSTextField以相同的方式连接到控制器,并调用其在控制器中的操作方法.

我也用关键值观察来尝试这个:

- (void) awakeFromNib {
    [tokenField addObserver:self forKeyPath:@"objectValue" options:NSKeyValueObservingOptionNew context:NULL];
}


- (void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
    if([object isEqual:tokenField]){
        NSLog(@"Tokens changed");
    }
}
Run Code Online (Sandbox Code Playgroud)

但只有在我以编程方式更改令牌时才会调用此操作.

如果tokenField更改了令牌,我该如何得到通知?

macos cocoa action objective-c nstokenfield

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

NSRegularExpression 中的 Unicode 字符 (UTF-32) 字符串编码

我正在为 Swift 中的 Turtle 格式的 RDF 数据编写解析器。海龟语法将模式定义PN_CHARS_BASE

[163s]  PN_CHARS_BASE ::= [A-Z] | [a-z] | [#x00C0-#x00D6] | [#x00D8-#x00F6] | [#x00F8-#x02FF] | [#x0370-#x037D] | [#x037F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]
Run Code Online (Sandbox Code Playgroud)

(请参阅W3C Turtle 推荐)。

模式中的最后一组[#x10000-#xEFFFF]超出了 UTF-16 字符串编码的范围。这里需要UTF-32。

这种模式用于匹配,例如,在前缀的第一个字符的字符串前缀,如foaffoaf:name,数这里不允许。

我想NSRegularExpression用于解析海龟文件。所以为了匹配PN_CHARS_BASE模式,我有以下测试代码:

    let PN_CHARS_BASE = "[A-Z]|[a-z]|[\\u00C0-\\u00D6]|[\\u00D8-\\u00F6]|[\\u00F8-\\u02FF]|[\\u0370-\\u037D]|[\\u037F-\\u1FFF]|[\\u200C-\\u200D]|[\\u2070-\\u218F]|[\\u2C00-\\u2FEF]|[\\u3001-\\uD7FF]|[\\uF900-\\uFDCF]|[\\uFDF0-\\uFFFD]|[\\u10000-\\uEFFFF]"
    do {
        let teststr = "9"
        let regex = try NSRegularExpression(pattern: PN_CHARS_BASE, options: [])
        let matches = …
Run Code Online (Sandbox Code Playgroud)

regex character-encoding nsregularexpression swift turtle-rdf

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