问题列表 - 第26302页

Java:Superclass在某些条件下构造子类,可能吗?

我有这种情况

public class A {
     public action() {
         System.out.println("Action done in A");
     }
}


public class B extends A {
     public action() {
         System.out.println("Action done in B");
     }
}
Run Code Online (Sandbox Code Playgroud)

当我创建一个B实例时,该动作将只执行B中的动作,因为它会覆盖超类的动作.

问题是在我的项目中,超类A已经被使用了太多次,我正在寻找一种方式,在某些条件下,当我创建一个A的实例时,它会进行检查,如果是真的,则替换自己与B.

public class A {
     public A() {
         if ([condition]) {
            this = new B();
         }
     }

     public action() {
         System.out.println("Action done in A");
     }
}

A a = new A();
a.action();
// expect to see "Action done in B"...
Run Code Online (Sandbox Code Playgroud)

这在某种程度上是可能的吗?

java subclass superclass

7
推荐指数
2
解决办法
6359
查看次数

如何使用Prototype JS在某个div之后添加html?

嗨伙计们,我希望能够将div添加到我的页面,以便它们被附加在某个类的div之后,并且在它之后的div之前,即:

<div class="header">Header DIV</div>
<!-- Want to add using javascript some HTML right here-->
<div class="one-basic-div">...</div>
<div class="one-basic-div">...</div>
<div class="one-basic-div">...</div>
<div class="one-basic-div">...</div>
Run Code Online (Sandbox Code Playgroud)

它基本上是我希望添加的原始html - 我该怎么做.

html javascript prototypejs

6
推荐指数
2
解决办法
2万
查看次数

谷歌地图setCenter()

我正在使用谷歌地图.在我的代码中,我使用了setCenter()函数.我的问题是标记总是位于地图区域的左上角(不在中心).请告诉我如何解决?

我的代码是

lat = 46.437857;
lon = -113.466797;

marker = new GMarker(new GLatLng(lat, lon));


var topRight = new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(20, 40));
map.addControl(new GLargeMapControl3D(), topRight);
map.setCenter(new GLatLng(lat, lon), 5);

map.addOverlay(marker);
Run Code Online (Sandbox Code Playgroud)

javascript google-maps

28
推荐指数
4
解决办法
11万
查看次数

设置数据漫游开/关

如何在我的Android应用程序中以编程方式设置数据漫游开/关?

android

8
推荐指数
2
解决办法
4967
查看次数

如何在php中将月份数转换为月份名

在php中是否有一个函数,你可以在一个月内将数字12转换为它的等价物.例如,如果mysql数据库存储数字而不存储日期的单词.你怎么把12号转换成12月的字?

php

0
推荐指数
2
解决办法
1483
查看次数

从Python中的多个源列表理解?

是否可以用列表理解来替换以下内容?

res = []
for a, _, c in myList:
    for i in c:
        res.append((a, i))
Run Code Online (Sandbox Code Playgroud)

例如:

# Input
myList = [("Foo", None, [1, 2, 3]), ("Bar", None, ["i", "j"])]

# Output
res = [("Foo", 1), ("Foo", 2), ("Foo", 3), ("Bar", "i"), ("Bar", "j")]
Run Code Online (Sandbox Code Playgroud)

python list-comprehension list

0
推荐指数
1
解决办法
791
查看次数

Rails发现:条件

我有一个Reservation模型,我正在寻找三个领域.在container_id必须始终self.id但是confirmedauto_confirmed只有一个需要为真.我有以下但它没有执行我需要的:

Reservation.find(:all, 
:conditions => ['container_id = ? AND confirmed = ? OR auto_confirm = ?', 
self.id, true, true,])
Run Code Online (Sandbox Code Playgroud)

我应该怎么改变这个?

mysql logic ruby-on-rails find conditional-statements

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

JPA/Hibernate批量(批量)插入

这是我在阅读了几个关于jpa批量插入的主题后创建的简单示例,我有2个持久对象User和Site.一个用户可以有很多站点,所以我们在这里有一对多的关系.假设我想创建用户并创建/链接几个站点到用户帐户.考虑到我愿意为Site对象使用批量插入,这是代码的样子.

User user = new User("John Doe");

user.getSites().add(new Site("google.com", user));
user.getSites().add(new Site("yahoo.com", user));

EntityTransaction tx = entityManager.getTransaction();
tx.begin();
entityManager.persist(user);
tx.commit();
Run Code Online (Sandbox Code Playgroud)

但是,当我运行此代码(我使用hibernate作为jpa实现提供程序)时,我看到以下sql输出:

Hibernate: insert into User (id, name) values (null, ?)
Hibernate: call identity()
Hibernate: insert into Site (id, url, user_id) values (null, ?, ?)
Hibernate: call identity()
Hibernate: insert into Site (id, url, user_id) values (null, ?, ?)
Hibernate: call identity()
Run Code Online (Sandbox Code Playgroud)

所以,我的意思是"真正的"批量插入不起作用或我感到困惑?

以下是此示例项目的源代码,这是maven项目,因此您只需下载并运行mvn install来检查输出.

更新:

在Ken Liu亲切地建议之后,我已禁用Site对象id自动生成:

    User user = new User("John Doe");
    user.getSites().add(new Site(1, "google.com", user));
    user.getSites().add(new …
Run Code Online (Sandbox Code Playgroud)

java persistence hibernate jpa openjpa

25
推荐指数
3
解决办法
5万
查看次数

使用许多互斥锁

我有一个大的树结构,其中几个线程同时工作.理想情况下,我希望每个单元都有一个单独的互斥锁.

我查看了pthread_mutex_tin 的定义bits/pthreadtypes.h并且它相当短,所以在我的情况下内存使用不应该是一个问题.

但是,当pthread_mutex_t仅使用8个线程时,使用许多(比如说几千个)不同的s 会有任何性能损失吗?

c linux hpc pthreads

10
推荐指数
1
解决办法
2357
查看次数

jQuery克隆问题

我试图克隆一个div并更改此div中输入字段的名称.它适用于大多数浏览器,但IE 7不会更改输入字段的name属性.

演示:http://jsbin.com/iduro/7

HTML

<body>
  <pre></pre>
  <div><input value="Hello World" name="test"></div>
</body>
Run Code Online (Sandbox Code Playgroud)

JS

var lastRow = $("body div:last"),
    newRow  = lastRow.clone(true)
              .show()
              .insertAfter(lastRow);

newRow.find('input').attr("name","test2");

$("pre").text( newRow[0].innerHTML );
Run Code Online (Sandbox Code Playgroud)

结果:

Firefox :(有效) <input value="Hello World" name="test2">

IE8(作品) <INPUT value="Hello World" name=test2 jQuery1273063250500="4">

IE7(错误): <INPUT value="Hello World" name=test jQuery1273063303968="4">

如您所见,IE7的名称不会更改为test2.

有没有明显的理由或解决方法?

jquery internet-explorer clone

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