我有三个类,一个是超类.
class abstract Base {
public abstract String getV();
}
class A extends Base {
private String v;
@Value("${A.v}") public String getV() { return v; };
}
class B extends Base {
private String v;
@Value("${B.v}") public String getV() { return v; };
}
Run Code Online (Sandbox Code Playgroud)
有没有办法简化spring @Value注释的使用?我不想复制粘贴"v"字段声明和所有Base子节点的getter.到目前为止我得到的是:
class abstract Base {
protected String v;
public String getV() { return v; };
public abstract void setV(String v);
}
class A extends Base {
@Value("${A.v}") public String setV(String v) { this.v = v;}; …Run Code Online (Sandbox Code Playgroud) 现在,当我选择注释时,我将视图重新定位为居中,如下所示:
[mapView setCenterCoordinate:view.annotation.coordinate animated:YES];
Run Code Online (Sandbox Code Playgroud)
但是,如何才能将视图重新定位到垂直而不是水平居中?
好奇,如果有人可以帮助一件事:
我只想告诉Xcode,如果地图上同时存在"addAnnotation"和"newAnnotation"引脚,则删除初始的"newAnnotation"引脚.
我的非工作代码如下:
if ([self.mapView addAnnotation:addAnnotation] & [self.mapView addAnnotation:newAnnotation] return)
{
[self.mapView removeAnnotation:newAnnotation];
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
我在测试Spring Junit测试配置时遇到了NullPointerException.问题在于使用@ContextConfiguration和@Autowired注释.
当我实例化上下文并直接获得对bean的引用时,如测试方法中注释掉的代码所示,测试正确运行并成功.但是当我尝试使用@ContextConfiguration和@autowired注释时,使用相同的XML文件属性,我在assertEquals语句中得到一个NullPointerException.你知道我做错了什么吗?
package com.greathouse.helloworld.HelloWorldTest;
import javax.inject.Inject;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import junit.framework.TestCase;
@ContextConfiguration(locations = {"classpath:/resources/application-config.xml"})
@RunWith(SpringJUnit4ClassRunner.class)
public class AppTest extends TestCase
{
@Autowired
MessageService messageService;
@Test
public void testApp()
{
//ApplicationContext context = new ClassPathXmlApplicationContext("classpath:/resources/application-config.xml");
//messageService = context.getBean("printMessage", MessageService.class);
assertEquals( messageService.getMessage(), "Hello World" );
}
}
Run Code Online (Sandbox Code Playgroud) 你喜欢哪个?在春季mvc,他们@Controller用于所有Controller类.他们可以使用一些标记界面吗?他们为什么选择注释方法?更好的是,它们可以具有类似的controller-scan类似功能,component-scan因此可以将包中的任何类假定为Controller类.类似地service-scan,repository-scan可以在xml中定义.
我需要检查,形成超类,如果派生类有一个特定的注释:
public class SuperClass
{
public boolean hasAnnotation()
{
//super_class_method_code
}
}
@annotationToCheck
public class DerivedClass extends SuperClass
{
//derived_class_code
}
Run Code Online (Sandbox Code Playgroud)
有可能在Java?我知道如何在C#中做,但在Java中我找不到任何解决方案...... :(
谢谢!!!
我正在使用Java的Annotation Processing机制为我的一些类创建序列化器.
我想检查当前处理的类的每个字段,并确保它是它的子类MyBaseSerializableClass.
我的问题是我只知道如何找到字段类型的直接超类:
TypeElement fieldType = (TypeElement)element;
TypeMirror superClassType = fieldType.getSuperclass();
Run Code Online (Sandbox Code Playgroud)
我怎样才能找到超级类superClassType并继续上升继承树直到我命中Object?
我正在使用带有Bootstrap和ReverseForm适配器的Zend框架,并且有一个有趣的问题:当我在Zend Form中使用Bootstrap Datepicker时,我有下一个异常:
Object provided to Escape helper, but flags do not allow recursion
有我的形式代码:
use \Doctrine\ODM\MongoDB\Mapping\Annotations as ODM;
use \Zend\Form\Annotation as ZFA;
Run Code Online (Sandbox Code Playgroud)
...
/**
* @var \DateTime
*
* @ODM\Date
*
* @ZFA\Type("ReverseForm\Element\BootstrapDatepicker")
* @ZFA\Attributes({"type":"text"})
* @ZFA\Options({
* "label":"Date",
* "extended": {
* "help": {"content": ""},
* }
* })
*
*/
private $date;
Run Code Online (Sandbox Code Playgroud)
并有我的反向形式配置:
'ReverseForm\Element\BootstrapDatepicker' => array(
'js' => array(
'/vendor/datepicker/js/bootstrap-datepicker.js'
),
'css' => array(
'/vendor/datepicker/css/datepicker.css'
),
'template' => 'input.phtml',
'inlineJs' => "$('#%1\$s').datepicker(%2\$s);",
'inlineJsConfig' => array(
'format' => …Run Code Online (Sandbox Code Playgroud) 我有一个非常简单的一对多关系,并希望使用in子句过滤多边(集合).我无法让过滤器工作.Hibernate都抱怨过滤器参数是未定义的(当使用Set或Integer作为类型时)或者说传入的值是错误的类型(当使用int参数类型时)
关系:类别有很多测试用例,测试用例只有一个类别
POJO#1
@Entity
@Table(name = "CATEGORY")
public class Category
{
@Id
@Column(name = "CATEGORYID")
private int ID;
@Column(name = "CATEGORYNAME")
private String name;
@OneToMany(fetch = FetchType.EAGER)
@JoinColumn(name = "CATEGORYID")
@Filter(name = "TEST_RUN_ID_FILTER")
private Collection<SimpleTestCase> testCases;
}
Run Code Online (Sandbox Code Playgroud)
Pojo#2
@Entity
@Table(name = "TESTCASE_NEW")
@FilterDef(name = "TEST_RUN_ID_FILTER", defaultCondition = "TESTRUNID in (:IDS)", parameters = { @ParamDef(name = "IDS", type = "Integer") })
public class SimpleTestCase
{
@Id
@Column(name = "TESTCASEID")
private int ID;
@Column(name = "TESTCASENAME")
private String name;
@Column(name = "STATUS") …Run Code Online (Sandbox Code Playgroud) 我使用GWT I18N,它依赖于带参数的消息的注释.
例如:
@DefaultMessage("Here is a message <br/> with a param:{0}")
String messageToLocalize(String param);
Run Code Online (Sandbox Code Playgroud)
如果没有本地化翻译,将使用默认消息.
我有一些很长的字符串要处理,我想输入几行代码可读性(我不会谈论渲染消息的多行).
我试过这个:
@DefaultMessage("Here is a long \
message <br/> with a \
param:{0}")
String messageToLocalize(String param);
Run Code Online (Sandbox Code Playgroud)
它失败了(GWT PlugIn 4.2和SDK 2.5.1),错误为"无效的转义序列".
我错过了什么 ?
它是Java注释或GWT的约束吗?(我很害怕,但在那找不到任何东西)
是否有解决方法?
谢谢
编辑:给出第一个答案,问题必须改写:是否可能,我应该使用哪个字符来显示延续(如果有的话)?
注释处理器显然需要一些东西来告诉他.我试过"\",因为它是在属性文件中使用的字符...
"+"也不起作用.