小编Ste*_* K.的帖子

Scala 2.8 Actor设计文档?Akka设计文件?

是否有针对Scala 2.8 Actors的设计文档,就像2.7版本一样?

Scala Actors:统一基于线程和基于事件的编程

阿卡有一个吗?

"Scala改进文档库"没有提到Actors.

scala scala-2.8 actor akka

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

在CompilerPlugin中编译String到AST?

我想创建一个模板插件,并且第一步将任意字符串转换为它的"编译"AST表示(正如scala解释器所做的那样,我猜).所以编译器插件可以例如将someString分配给"HELLO WORLD":

  @StringAnnotation("""("hello world").toString.toUpperCase""")
  var someString = ""
Run Code Online (Sandbox Code Playgroud)

我目前的第一个镜头插件简而言之:

  • runafter解析器
  • 创建一个新的仅表示编译器和一个带有注释内容的VirtualFile
  • 编译和打印unit.body

见:http://paste.pocoo.org/show/326025/

a)现在,"object o{val x = 0}"返回一个AST,但"var x = 1+ 2"不是因为它不是一个有效的.scala文件.我怎样才能解决这个问题?

b)仅仅是演示是一个好的选择吗?我应该改为使用适当的阶段覆盖computeInternalPhases还是使用-Ystop:phase?

c)是否可以将外部编译器的环境绑定到内部编译器,以便例如

  var x = _
  (...)
  @StringAnnotation("x += 3")
Run Code Online (Sandbox Code Playgroud)

会工作?

我发现以下代码[1]使用解释器和一个类似的变量:

  Interpreter interpreter = new Interpreter(settings);
  String[] context = { "FOO" };
  interpreter.bind("context", "Array[String]", context);
  interpreter
    .interpret("de.tutorials.scala2.Test.main(context)");
  context[0] = "BAR";
  interpreter
    .interpret("de.tutorials.scala2.Test.main(context)");
Run Code Online (Sandbox Code Playgroud)

[1] http://www.tutorials.de/java/320639-beispiel-zur-einbindung-des-scala-interpreters-kompilierte-scala-anwendungen.html#post1653884

谢谢

完整代码:

class AnnotationsPI(val global: Global) extends Plugin {
  import global._
  val name = "a_plugins::AnnotationsPI" //a_ …
Run Code Online (Sandbox Code Playgroud)

compiler-construction scala scala-2.8

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

投影文本编辑器?

  1. 有没有任何文字,投影编辑?它们如何在更新子树时工作?
  2. 是否有可用于构建它们的框架?
  3. 你知道描述他们设计的论文吗?
  4. 这种"解析"的风格怎么称呼?
  5. 如果我想自己实现文本投影编辑器,我该从哪里开始?

    • 我更喜欢使用EMF/ECore,但这是可选的.
    • 据我所知,xText使用从文本到模型的单向转换,或者至少替换元素级联/整个子树而不是更新它们.

parsing text-editor editor xtext eclipse-emf

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

具有守护进程风格语义的actor

Scala 2.8昨天宣布.他们突出了"增强型演员"等内容.

"具有守护进程风格语义的演员"是什么意思,我在哪里可以找到更多关于它的内容?

scala scala-2.8 actor

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

Scala远程演员 - 陷阱

在编写Scala RemoteActor代码时,我发现了一些陷阱:

  • 必须设置RemoteActor.classLoader = getClass().getClassLoader()以避免"java.lang.ClassNotFoundException"
  • 链接并不总是有效,因为"在远程操作员的代理(更具体地说,代理委托)有机会发送之前,支持远程操作员的NetKernel(负责远程转发消息的工具)可以关闭的竞争条件远程指示本地出口的消息." (Stephan Tu)
  • RemoteActor.select并不总是返回相同的委托(RemoteActor.select - 结果确定性?)
  • 通过网络发送代理会阻止应用程序正常退出(RemoteActor取消注册actor)
  • 如果在act之外使用RemoteActor.alive()和RemoteActor.register(),Remote Actors将不会终止.(见马格努斯的回答)

程序员应该注意其他任何陷阱吗?

network-programming scala remote-actors scala-2.8 actor

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

如何使用 JPA 和 Hibernate 保留 OffsetTime 和 OffsetDateTime

如何将 Java 8OffsetTimeOffsetDateTimeHibernate 持久化为正确的 SQL 类型(TIME_WITH_TIMEZONETIMESTAMP_WITH_TIMEZONE)?我在博客中找到LocalTimeLocalDateTime使用了EnhancedUserTypes的解决方案。

用户类型如何用于偏移数据?

java hibernate hibernate-mapping java-8 java-time

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

Spring存储库接口:按类型查询方法

我想知道是否可以使用springs的查询方法指定特定的子类型。

例如,如果有一个MailUserChatUser,两个都extend User带有InheritanceType.SINGLE_TABLE-我可以找到所有MailUser带有的s PersonRepository吗?

或者在多个类的情况下,我可以找到User不包括所有的所有MailUsers extend User吗?

public interface PersonRepository extends Repository<User, Long> {

  List<Person> findByEmailAddressAndLastname(EmailAddress emailAddress, String lastname);
...
}
Run Code Online (Sandbox Code Playgroud)

spring spring-data spring-data-jpa

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

为什么不能在Java中引用元字段或方法?

例如

class Foo {
  Integer bar;
}
Run Code Online (Sandbox Code Playgroud)

我想知道为什么没有一种语言功能可以让我这么做

Foo.class.bar //yes, xxx.class returns something of java.lang.Class<T>
Run Code Online (Sandbox Code Playgroud)

引用元字段栏?

我正在阅读Pro JPA 2 Book,在我看来,规范的元模型生成是必要的,因为这在Java中是不可能的.

请注意,这是一个出于好奇的理论问题,我想获得一些见解,为什么没有实现此功能.

---更新---

为了更详细地阐述我的问题,请考虑通过Entity Graph API在JPA中添加属性的示例:

EntityGraph<Foo> g = myEntityManager.createEntityGraph(Foo.class)
g.addAttributeNodes("bar")
Run Code Online (Sandbox Code Playgroud)

字符串"bar"和Foo属性之间没有正式的链接(对于编译器/ IDE)bar.

java meta metadata metaprogramming

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

xsd:dateTime到Java OffsetDateTime

为了使用JAXB 正确处理xs:dateTime,我必须从String- > 编写自己的转换器java.time.OffsetDateTime.

正如XML Schema Definition中所提到的,dateTime的灵感来自ISO 8601.我曾经OffsetDateTime.parse(s, DateTimeFormatter.ISO_OFFSET_DATE_TIME)解析过xs:dateTime,它适用于例如

"2007-12-03T10:15:30+01:00" //or
"2007-12-03T10:15:30Z"
Run Code Online (Sandbox Code Playgroud)

遗憾的是,在xs:dateTime偏移部分声明是可选的,因此解析有效

"2016-03-02T17:09:55"
Run Code Online (Sandbox Code Playgroud)

抛出一个DateTimeParseException.

是否存在DateTimeFormatterOffsetDateTime,它还处理未分区的xs:dateTimes(可能具有默认时区)?

xml datetime xsd jaxb java-8

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

如何获得_的类:任何

我已经包装了一条消息,并希望记录我已经包装的消息.

val any :Any = msg.wrappedMsg
var result :Class[_] = null
Run Code Online (Sandbox Code Playgroud)

我能找到的唯一解决方案是匹配所有内容:

result = any match {
  case x:AnyRef => x.getClass
  case _:Double => classOf[Double]
  case _:Float  => classOf[Float]
  case _:Long   => classOf[Long]
  case _:Int    => classOf[Int]
  case _:Short  => classOf[Short]
  case _:Byte   => classOf[Byte]
  case _:Unit   => classOf[Unit]
  case _:Boolean=> classOf[Boolean]
  case _:Char   => classOf[Char]
}
Run Code Online (Sandbox Code Playgroud)

我想知道是否有更好的解决方案?以下两种方法不起作用:(

result = any.getClass //error
// type mismatch;  found   : Any  required: ?{val getClass: ?} 
// Note: Any is not implicitly converted to …
Run Code Online (Sandbox Code Playgroud)

types type-systems scala class scala-2.8

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