我想要一个具有拦截所有方法调用的方面的JAR,例如
@Aspect
public class CoolAspect {
@Pointcut("execution(public * *(..))")
public void anyPublicMethod() { }
@Before("anyPublicMethod()")
public void advice(JoinPoint point) {
System.out.println("sign:\t" + point.getSignature());
}
}
Run Code Online (Sandbox Code Playgroud)
假设以上是我拥有并希望客户使用的方面。我将其编译为JAR并提供给Maven。
现在,客户端将使用此jar作为依赖项,例如
<dependency>
<groupId>cool-group</groupId>
<artifactId>cool-artifact</artifactId>
<version>1.0.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
该工件(JAR)具有上述方面。
现在可以通过仅声明Maven依赖项来进行方面工作?
几件重要的事情:
web.xml。ServletContextListener。有任何想法吗?
我来自Java背景,包装问题如下:
比方说,我可以在同一个包下面有很多文件com.parobay.io.然后我可以将其作为库分发,用户将使用它:
import com.parobay.io.Input;
import com.parobay.io.Output;
Run Code Online (Sandbox Code Playgroud)
要么
import com.parobay.io.*; // to import everything
Run Code Online (Sandbox Code Playgroud)
所以我可以com.parobay.io在多个文件中定义一个"module()和类".
那么如何在D中实现同样的目标呢?我是否必须创建一个目录,com\parobay\io并且有两个文件被调用Input.d,Output.d或者是否有更聪明的方法?
在Java中,规则非常严格,因此很难弄错.在D中有很多可能性.那么有没有任何约定,比如每个文件一个类,或者文件名等于类的名称?
我需要检查是否存在动态库,以便以后可以安全地调用使用该库的函数。
有没有多平台的方式来检查这一点?我的目标是MS Windows 7(VC ++ 11)和Linux(g ++)。
我可以以某种方式缓存i.toString这个简单的函数定义吗?
def palindrome(i: Int) = i.toString == i.toString.reverse
Run Code Online (Sandbox Code Playgroud)
我想保持这个功能简单,没有经典的多线,支撑功能..
表Players:
ID | name | email | age | ...
1 | 'bob' | null | 23 | ...
Run Code Online (Sandbox Code Playgroud)
此表是Player持久化类的实例的位置(每个实例一行,没有组合等).
有了Hibernate Session,我如何获得行(比如id - PK - 等于1)作为Java Map(key =列名,值=单元格值)?
用法示例:
Map<String,String> row = getPlayerByIdAsMap(1);
Run Code Online (Sandbox Code Playgroud) 什么是将小端数转换为大端数的最佳方法?
def i = 0x12345678;
def j = 0x78563412;
assert i == convert(j) // ?
Run Code Online (Sandbox Code Playgroud)
我知道我可以掩盖字节并重新排序它们但是什么是更加时髦的方式?
class StaticClass {
public static String a(){ return "a"; }
public static String ab(){ return a()+"b"; }
}
Run Code Online (Sandbox Code Playgroud)
我想模仿,StaticClass::a以便它返回"x"并调用StaticClass.ab()结果"xb"...
我觉得PowerMock和TestNG很难......
我正在测试的确切代码:
class StaticClass {
public static String A() {
System.out.println("Called A");
throw new IllegalStateException("SHOULD BE MOCKED AWAY!");
}
public static String B() {
System.out.println("Called B");
return A() + "B";
}
}
@PrepareForTest({StaticClass.class})
public class StaticClassTest extends PowerMockTestCase {
@Test
public void testAB() throws Exception {
PowerMockito.spy(StaticClass.class);
BDDMockito.given(StaticClass.A()).willReturn("A");
assertEquals("AB", StaticClass.B()); // IllegalStateEx is …Run Code Online (Sandbox Code Playgroud) 一个非常受欢迎的monad解释如下:
http://blog.sigfpe.com/2007/04/trivial-monad.html
除了这部分我得到的一切:
bind :: (a -> W b) -> (W a -> W b)
bind f (W x) = f x
Run Code Online (Sandbox Code Playgroud)
我有Haskell的基本知识(很长一段时间没用过它),但这个签名看起来不对.
我安装了GHC并检查了它的想法 - 结果它认为我做了什么,即:
:t bind
bind :: (t1 -> t) -> W t1 -> t
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
class Complex implements Recursive {
Map<String, Recursive> map;
...
}
class Simple implements Recursive { ... }
Run Code Online (Sandbox Code Playgroud)
我如何反序列化这个 json:
{
"type" : "complex",
"map" : {
"a" : {
"type" : "simple"
},
"b" : {
"type" : "complex",
"map" : {
"ba" : {
"type" : "simple"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
使用谷歌 GSON?
我用这种方式定义一个简单的结构:
struct Person{
private string _name;
@property ref string name() { return _name; }
}
Run Code Online (Sandbox Code Playgroud)
该@property注释是真的很酷,但我不知道我应该如何使用它正确.
以上是相当不错的,但我无法传递Person给需要in Person例如的函数:
void fun(in Person p) { ... }
Run Code Online (Sandbox Code Playgroud)
为避免复制,Person我必须声明参数ref,但我不修改它.
那么如何将属性语法与const-correctness结合起来呢?
编辑:要跟进,可以同样适用于循环吗?
void fun(in Person[] people) {
foreach(Person p; people) { ... }
}
Run Code Online (Sandbox Code Playgroud)
现在我不想复制人,但我不能使用,ref Person因为它是常量.所以我必须ref const(Person) p在循环中写入成为loong.