这是非常糟糕的OO,但我并不是想把它放在除编码器本身以外的任何人都可以使用的任何代码中 - 除了编码器的测试外,它永远不会被调用.
这是我面临的问题:我有一系列外部定义的类.我无法以任何方式修改它们(当然我可以继承或调用它们).它们有多种名称,但它们不扩展任何超类(Object除外),或实现任何接口.然而,我对它们的了解就是它们有一种称为"呼叫"的方法.
为了测试,我试图编写将调用这些类的调用方法中的任何一个的代码.但是,当然,我不能只说Object.call()因为没有为每个Object定义调用.
从本质上讲,这将有效:
MyClassOne classOne = new MyClassOne();
MyClassOneInput classOneInput = new MyclassOneInput();
classOne.call(classOneInput);
Run Code Online (Sandbox Code Playgroud)
但这不会:
Object clazz = getClassFromElsewhere();
Object clazzInput = getClassInputFromElsewhere();
clazz.call(clazzInput).
Run Code Online (Sandbox Code Playgroud)
显然,因为Java是一种强类型语言.
但是,为了让每个在这个系统上工作的人快10倍的测试,我可以以某种方式解决这个问题并以某种方式对任何Class和任何ClassInput使用'call'方法吗?如果它生成异常或者如果传递了错误的类完全中断,我没有问题.
请帮我违反面向对象.
我有这样一张桌子:
TABLE: FACTS
ID KEY VALUE
1 name Jeremy
1 height 5'11
1 awesomeness 10
2 name Mark
2 awesomeness 4
3 height 4'6
Run Code Online (Sandbox Code Playgroud)
因此,(ID,KEY)元组可以被视为主键.
我试图返回这样的行:
ID NAME HEIGHT AWESOMENESS
1 Jeremy 5'11 10
2 Mark (null) 4
3 (null) 4'6 (null)
Run Code Online (Sandbox Code Playgroud)
除了通过对每列进行子选择之外,如何获取键值,如果它们在那里,并将它们收集到我的单行中?我到目前为止尝试的是:
SELECT
id,
CASE WHEN facts.key = 'name' THEN value END name,
CASE WHEN facts.key = 'height' THEN value END height,
CASE when facts.key = 'awesomeness' THEN value END awesomeness
FROM
facts
WHERE
facts.id in (1,2,3)
Run Code Online (Sandbox Code Playgroud)
但是由于显而易见的原因,每个匹配的键返回一行,而不是每个id一行.
我怎样才能按照我想要的方式去做? …
我正在尝试创建一个"存储"两个值之间的解码的子表,因为我需要多次使用该解码.让我们说这些是我的表:
Table Person
Name Number_name
Jeremy One
Thomas Two
Stephen Three
Run Code Online (Sandbox Code Playgroud)
我当前的SQL看起来像这样:
SELECT
decode (number_name,
'one',1,
'two',2,
'three',3,
'four',4)
num
FROM person where name = 'Jeremy'
and (some other condition)
UNION SELECT
decode (number_name,
'one',1,
'two',2,
'three',3,
'four,4)
num
FROM Person
where Name <> "Jeremy"
and (some other condition)
Run Code Online (Sandbox Code Playgroud)
我希望能做的是这样的:
SELECT num from my_temp_table where name = "Jeremy" and (some other condition)
union select num from my_temp_table where name <> "Jeremy" and (some other condition)
...
Run Code Online (Sandbox Code Playgroud)
其中my_temp_table是在该查询期间构造的(它在查询完成运行时不再存在)并且看起来像
Table my_temp_table
Name …Run Code Online (Sandbox Code Playgroud) 我有一个非常简单的查询来查找一个表中的一些值,而不是另一个表.
select * from my_table were my_value in
('one','two','hello','blue')
and my_value not in
(select my_value from my_table_2)
Run Code Online (Sandbox Code Playgroud)
这将返回两行 - my_table的行包含'one'和'two'.
但是,我跑了这个:
select * from my_table_2 where my_value in ('one','two')
Run Code Online (Sandbox Code Playgroud)
并且震惊地发现这在my_table_2中返回了两行,其值为"一"和"两".
"不在"正在获得99%正确的东西,但随机遗漏了一些值.这是什么原因?
编辑:对不起,错字.固定它.
我正在尝试编写一个方法,将MyInterface的任何子类作为参数,但会出现语法错误.
public Map<String, List<T extends MyInterface>> makeMap(List<T extends MyInterface>) {
Map<String, List<T extends MyInterface>> myMap = ...
return myMap;
}
Run Code Online (Sandbox Code Playgroud)
此语法无效.签名给出错误"错位的构造".但是,我的想法是我可以传递MyInterface客栈T的任何子类.这可以用Java完成吗?怎么样?
是否有 CSS 或纯 HTML 解决方案可以让 div 仅在有内容时才可见?我有这个 JSP 代码:
<div class="message-panel panel-alert">
<span class="label-warning">
<span class="warning-sign"></span>
</span>
<c:if test="${condition1}">
<p> Condition 1 is true </p>
</c:if>
<c:if test="${condition2}">
<p> Condition 2i s true </p>
</c:if>
</div>
Run Code Online (Sandbox Code Playgroud)
如果任一条件为真,我确实想显示带有警告标志的警报面板,但如果这两个条件都不为真,我根本不希望出现此 div。我能想到的两个解决方案是用一个包罗万象的 if 语句包围整个事情,或者在 javascript 中以编程方式修改 div 的可见属性。然而,我想知道是否有一种方法可以说“嘿,div,如果你什么都没有,就走开”。
HTML 按钮允许您同时按 Enter 或空格键来点击按钮。然而,使用按钮还附带了一堆 CSS,它们破坏了我们想要的按钮外观。
有没有一种相对面向未来、简单的方法来使用 CSS 来解决这个问题?只需查看 chrome 计算出的 CSS,该按钮就添加了大量 CSS 属性。
您是否注意到本网站上的每10个问题都与jQuery有关?
无论如何...
我第一次使用jQuery.我不知道我是否正确加载了它.当我运行此代码时:
<script type="text/javascript">
function allDayClicked() {
if (jQuery) alert("loaded");
var allday = document.getElementById("allDayEvent");
var start = document.getElementById("<%=startTimeSelector.ClientID%>");
$('allDayEvent').hide();
}
</script>
Run Code Online (Sandbox Code Playgroud)
警报出现,说"已加载",但没有其他事情发生; html复选框不会隐藏.我的javascript输出中没有出现任何错误.
有可能我没有成功加载jQuery?我在我的visual studio项目中添加了对它的引用,并通过将其拖动到default.aspx来生成它:
<script src="Scripts/jquery-1.6.1.min.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
否则,发生了什么?
我正在使用一个表,对于每个ID,它都有一个"事件"列表,其中一个事件是该ID所代表的对象是否为"On"或"Off".如果项目不在此表中,则假设项目开始为关闭.只有在该点没有开启的情况下,物品才能合法地继续使用.
以下是它的外观示例:
Events
ID Type Date
1 On 01-MAY-12
1 Off 01-JUN-12
1 On 05-JUN-12
Run Code Online (Sandbox Code Playgroud)
不幸的是,这些数据非常糟糕,并且充满了不可能性.以下是此表的实际部分:
Events
ID Type Date
1 On 01-MAY-12
1 On 01-MAY-12
1 On 01-JUN-12
1 Off 01-JUL-12
1 Off 01-AUG-12
1 On 05-AUG-12
Run Code Online (Sandbox Code Playgroud)
我想要做的是编写一个返回此表而没有垃圾数据的查询,其中不可能的行(即,当项已经打开时打开项目的行,或者当它已经关闭时关闭的行)被删除.
我不太关心它在第一次打开之前被"关闭"的情况,因为我不相信我们有任何这种情况.
所以,所述查询将返回:
Events
ID Type Date
1 On 01-MAY-12
1 Off 01-JUL-12
1 On 01-AUG-12
Run Code Online (Sandbox Code Playgroud)
有关如何做到这一点的任何想法?这种"在条件X下返回第一行"的逻辑给我带来了很多困难.如果我只想要第一行或第一行,期间,我可以分组并抓住一分钟.但是在这种情况下我该怎么做呢?
oracle ×4
sql ×4
html ×3
css ×2
java ×2
dynamic-sql ×1
generics ×1
group-by ×1
javascript ×1
jquery ×1
notin ×1
pivot ×1
temp-tables ×1
types ×1