作为Scala的初学者 - 功能方式,我有点困惑于是否应该将我的case类的函数/方法放在这样的类中(然后使用类似方法链接,IDE提示)或者它是否是更实用的方法定义case类之外的函数.让我们考虑两种非常简单的环形缓冲区实现的方法:
1 /案例类内的方法
case class RingBuffer[T](index: Int, data: Seq[T]) {
def shiftLeft: RingBuffer[T] = RingBuffer((index + 1) % data.size, data)
def shiftRight: RingBuffer[T] = RingBuffer((index + data.size - 1) % data.size, data)
def update(value: T) = RingBuffer(index, data.updated(index, value))
def head: T = data(index)
def length: Int = data.length
}
Run Code Online (Sandbox Code Playgroud)
使用这种方法,您可以执行类似链接的方法,IDE将能够在这种情况下提示方法:
val buffer = RingBuffer(0, Seq(1,2,3,4,5)) // 1,2,3,4,5
buffer.head // 1
val buffer2 = buffer.shiftLeft.shiftLeft // 3,4,5,1,2
buffer2.head // 3
Run Code Online (Sandbox Code Playgroud)
2 /案例类外的功能
case class …Run Code Online (Sandbox Code Playgroud) AsyncContext超时后的确切行为是什么?它是否仍然运行并使用getResponse()返回响应?
我是Java SE/EE开发人员,但在Scala中是初学者.在Java中,当我有一些应该可以被其他代码访问的私有字段时,我使用getX()/ setX()经典样式的getter/setter.但是,不确定Scala怎么样.我注意到在Scala中,字段的getter/setter的命名约定是使用与字段的名称相同的名称.那么只需设置字段就可以了public,还是应该使用这种getter/setter?:
private var _value = .....
def value = _value
def value_= (newVal:Int) = _value = newVal
Run Code Online (Sandbox Code Playgroud)
是否可以(根据scala命名约定)在字段名称本身之前放置下划线?
谢谢.
我希望有一些Java代码的格式比默认的Netbeans格式化行为更紧凑,但是,我无法正确设置代码片段的Netbeans格式化选项,所以我会试着在这里问:
1 /是可以设置Netbeans格式保留单行方法吗?例如:
public void printMessage(String message) { System.out.println(message); }
Run Code Online (Sandbox Code Playgroud)
默认行为将此代码段格式化如下:
public void printMessage(String message) {
System.out.println(message);
}
Run Code Online (Sandbox Code Playgroud)
2 /这种形式是否可以初始化双括号?
private List<String> list = new ArrayList<String>() {{
// some code here
}};
Run Code Online (Sandbox Code Playgroud)
Netbeans总是将此代码分解为
private List<String> list = new ArrayList<String>() {
{
// some code here
}
};
Run Code Online (Sandbox Code Playgroud)
谢谢你的提示.
假设我有这两个数据记录X和Y以及以下两个函数:
f1 :: IO (Maybe [X])
f2 :: X -> IO (Maybe Y)
Run Code Online (Sandbox Code Playgroud)
我需要先调用f1,然后对返回列表(存储在中IO (Maybe))的每个元素调用f2,这将导致类似的结果IO (Maybe [IO (Maybe Y)])。我怎样才能使他们变得有意义,例如
result :: Maybe (IO [Y])
Run Code Online (Sandbox Code Playgroud)
要么
result :: IO (Maybe [Y])
Run Code Online (Sandbox Code Playgroud)
?
非常感谢您的帮助:-)
我想在我的Java EE 6(Jboss AS 7.1.1Final)应用程序中使用PrimeFaces,具有以下结构:
EAR
|- lib/
| |- primefaces-4.0.jar
|
|- ejb-module.jar
|- webbapp1.war
|- webapp2.war
Run Code Online (Sandbox Code Playgroud)
但是,在部署到JBoss AS 7时,我遇到了几个例外,例如:
java.lang.LinkageError: Failed to link org/primefaces/context/PrimeFacesContextFactory
Run Code Online (Sandbox Code Playgroud)
(请参阅PasteBin上的完整堆栈跟踪)
对于EAR的pom.xml,我正在使用PrimeFaces的Maven依赖:
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>4.0</version>
<type>jar</type>
</dependency>
Run Code Online (Sandbox Code Playgroud)
但是,当我将依赖项放入一个WAR的pom.xml时,它可以工作,但我想在多个WAR之间共享primefaces库.
我已经google了很多但没有找到任何解决方案.谢谢你的任何建议.
java ×2
java-ee ×2
scala ×2
asynchronous ×1
haskell ×1
jboss ×1
jsf ×1
netbeans ×1
primefaces ×1