我正在GWT中创建一个自定义小部件,扩展Composite并实现ClickHandler.我已经实现了onClick方法,但是clickEvent不起作用.为了使clickEvent工作,我还应该在类中另外实现什么方法?可能是HandlerRegistration?怎么样?
我需要将一个服务注入到Angular 2
应用程序中的另一个服务中.在阅读了我推断的文档之后,最好的方法是使用Factory Provider.但是出现了两个问题:
1)文档建议创建一个HeroServiceProvider
包含两个"代码段"的类:
let heroServiceFactory = (logger: Logger, userService: UserService) => {
return new HeroService(logger, userService.user.isAuthorized);
};
export let heroServiceProvider =
{ provide: HeroService,
useFactory: heroServiceFactory,
deps: [Logger, UserService]
};
Run Code Online (Sandbox Code Playgroud)
我的问题是这个班级应该怎么样?应该在哪里添加上述代码段?
2)如何/可以使用这家工厂?我明白了,它应该导入为:
import { heroServiceProvider } from './hero.service.provider';
@Component({
selector: 'my-selector',
template: `
`,
providers: [heroServiceProvider]
})
Run Code Online (Sandbox Code Playgroud)
那么如何才能检索和访问所需的参数化服务?
我需要一个创建对象的类,为每个创建的对象分配一个ID.此ID通常是类的int属性.我想每次创建一个Object时增加这个值(ID),然后从1开始分配给该对象.我觉得我需要一个静态int属性.
如何初始化此静态属性?
我应该创建一个单独的方法来增加在构造函数中调用的ID(作为ID生成器)吗?
一般来说,最有效和最精心设计的方式是什么?
我知道那种问题通常是不可取的,但我仍然认为我可以依靠你的帮助.我希望有一个体面的Jboss教程/文档的说明,引用它的基本和广泛的应用程序以及一些简单的例子.到目前为止我一直在努力寻找,但是我找不到任何令我满意的东西.
我正在努力理解hibernate方法之间的细微差别
saveOrUpdate - update - save/persist
.
我知道网站上有一些类似的问题:
save和saveOrUpdate方法之间的区别是hibernate
但是看过它们之后,我没有注意到答案涵盖了在任何情况下使用这些方法产生的所有问题.我想提一下我创建的测试示例:我有一个带有记录的表USER:
id | company
1 Company1
2 Company2
Run Code Online (Sandbox Code Playgroud)
然后执行代码:
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
Transaction tx = session.beginTransaction();
User user1 = (User) session.load(User.class, Integer.valueOf(1));
user1.setCompany("Company3");
User user2 = (User) session.load(User.class, Integer.valueOf(2));
user2.setCompany("Company4");
session.persist(user1);
session.save(user2);
tx.commit();
Run Code Online (Sandbox Code Playgroud)
我在数据库中看到:
id | company
1 Company3
2 Company4
Run Code Online (Sandbox Code Playgroud)
我注意到save
并且persist
在这种情况下执行与saveOrUpdate
或相同的任务.update
因此,我的问题是什么是它们之间的差异以及何时saveOrUpdate
或update
必要.我说得对,与save
或persist
不更新相关的对象,即使使用Cascade
?
我正在尝试类的方法和功能,NumberFormat
我已经达到了一个奇怪的结果.我编译并运行以下程序:
public static void main(String[] args) {
Locale loc = Locale.US;
NumberFormat nf = NumberFormat.getInstance(loc);
System.out.println("Max: "+nf.getMaximumFractionDigits());
System.out.println("Min: "+nf.getMinimumFractionDigits());
try {
Number d = nf.parse("4527.9997539");
System.out.println(d);
// nf.setMaximumFractionDigits(4);
System.out.println(nf.format(4527.999753));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
输出是:
Max: 3
Min: 0
4527.9997539
4,528
Run Code Online (Sandbox Code Playgroud)
这意味着它没有考虑任何分数.如果我取消注释该行:
nf.setMaximumFractionDigits(4);
Run Code Online (Sandbox Code Playgroud)
输出是:
Max: 3
Min: 0
4527.9997539
4,527.9998
Run Code Online (Sandbox Code Playgroud)
换句话说,它运作正常.方法实际发生了什么setMaximumFractionDigits()
,并没有在第一种情况下带来包含3位数的数字?
我想在ManagedBean中使用注释@Inject或@Produce注入CDI Bean.我使用的CDI Bean是:
@Named
@Startup
@ApplicationScoped
public class BaseBean {
private List<String> custs;
public List<String> getCusts() {
return custs;
}
public void setCusts(List<String> emps) {
this.custs = emps;
}
public BaseBean(){
}
@PostConstruct
void init() {
custs = new ArrayList<String>();
custs.add("Cust1");
custs.add("Cust3");
custs.add("Cust2");
custs.add("Cust4");
}
}
Run Code Online (Sandbox Code Playgroud)
我想要注入CDI Bean的ManagedBean是:
@SessionScoped
@ManagedBean
public class Hello implements Serializable {
@Inject
private BaseBean dBean;
private static final long serialVersionUID = 1L;
private List<String> customers;
private List<String> customersSelect;
public Hello() {
}
@PostConstruct
void init() …
Run Code Online (Sandbox Code Playgroud) 我正在阅读之间的不同之处ArrayList
并LinkedList
指出何时使用LinkedList而不是ArrayList?.我开发了一个小的示例applcation来测试一个主要的优点LinkedList
但是我获得的结果没有证实,这LinkedList
超过ArrayList
了操作的性能:
ListIterator.add(E element)
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
public static void main(String[] args) {
int number = 100000;
long startTime1 = System.currentTimeMillis();
fillLinkedList(number);
long stopTime1 = System.currentTimeMillis();
long startTime2 = System.currentTimeMillis();
fillArrayList(number);
long stopTime2 = System.currentTimeMillis();
System.out.println(" LinkedList needed: "+ (stopTime1 - startTime1));
System.out.println(" ArrayList needed: "+ (stopTime2 - startTime2));
}
public static void fillLinkedList(int number){
LinkedList<Integer> list = new LinkedList<Integer>();
ListIterator<Integer> it = list.listIterator();
int i = 0;
while(i++<number){
it.add(i);
} …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在MAC上的android-studio中开发,我遇到了一个问题.在活动代码中,我不能引用位于mipmap文件夹中的图像.特别是我已经创建了一个通知:
...
Notification notify = new NotificationCompat.Builder(this)
.setContentTitle(title)
.setContentText(body)
.setSmallIcon(R.drawable.ic_launcher)
.setContentIntent(startPendingIntent)
.build();
...
Run Code Online (Sandbox Code Playgroud)
我收到错误"无法解析符号ic_launcher".奇怪也是问题,我无法将图标复制粘贴到空的drawable文件夹中.我应该在哪里以及如何放置图标以便在android studio的代码中可见?
有没有办法regular expression
在Java中编写一个查找a是否String
包含奇数个特定字符的方法,即"a"
?我已经完成了编写更详细的代码,使用以下方法:
public static boolean hasEvenNumber(String s) {
int count = 0;
Pattern p = Pattern.compile("(^a)*(a)");
Matcher m = p.matcher(s);
while (m.find())
count++;
if (count % 2 != 0)
return true;
return false;
}
Run Code Online (Sandbox Code Playgroud)
例如,如果将String "jsadaajaaikadjasl"
作为参数传递,则它返回true,因为它包含7 "a"
.是否有一种更优雅的方式来实现它只使用a regex
并检查它:
Pattern p = Pattern.compile(...);
Matcher m = p.matcher(s);
if(m.matches())
return true;
Run Code Online (Sandbox Code Playgroud)
?
java ×4
android ×1
angular ×1
arraylist ×1
cdi ×1
constructor ×1
database ×1
ejb ×1
gwt ×1
hibernate ×1
image ×1
java-ee ×1
java-ee-6 ×1
jboss ×1
jsf ×1
linked-list ×1
listiterator ×1
object ×1
persistence ×1
regex ×1
string ×1
typescript ×1