在这个简化的例子中,我有一个泛型类,以及一个返回Map而不管类型参数的方法.当我没有在包含类上指定类型时,为什么编译器会清除地图上的类型?
import java.util.Map;
public class MyClass<T>
{
public Map<String, String> getMap()
{
return null;
}
public void test()
{
MyClass<Object> success = new MyClass<Object>();
String s = success.getMap().get("");
MyClass unchecked = new MyClass();
Map<String, String> map = unchecked.getMap(); // Unchecked warning, why?
String s2 = map.get("");
MyClass fail = new MyClass();
String s3 = fail.getMap().get(""); // Compiler error, why?
}
}
Run Code Online (Sandbox Code Playgroud)
我得到这个编译错误.
MyClass.java:20: incompatible types
found : java.lang.Object
required: java.lang.String
String s3 = fail.getMap().get(""); // Compiler error
Run Code Online (Sandbox Code Playgroud) 在MSDN文章" 了解WPF中的路由事件和命令"中,它说明了这一点
事件将从源元素向上冒泡(传播)可视树,直到它被处理或到达根元素.
但是,在此示例中,当您单击按钮时,它不会"冒泡可视树"以由父StackPanel事件处理,即单击按钮不会触发任何事件.
为什么不?如果不是这样的话,他们是什么意思"冒泡"?
XAML:
<Window x:Class="TestClickEvents456.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<StackPanel x:Name="TheStackPanel"
Background="Yellow"
MouseDown="TheStackPanel_MouseDown">
<Button x:Name="TheButton"
Margin="10"
Content="Click This"/>
<TextBlock x:Name="TheMessage"
Text="Click the button or the yellow area"/>
</StackPanel>
</Window>
Run Code Online (Sandbox Code Playgroud)
后台代码:
using System.Windows;
using System.Windows.Input;
namespace TestClickEvents456
{
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
private void TheStackPanel_MouseDown(object sender, MouseButtonEventArgs e)
{
TheMessage.Text = "StackPanel was clicked.";
}
}
}
Run Code Online (Sandbox Code Playgroud) 我需要运行如下查询:
SELECT p.id, p.name,
(SELECT name
FROM sites s
WHERE s.id = p.site_id) AS site_list
FROM publications p
Run Code Online (Sandbox Code Playgroud)
但我希望子选择返回逗号分隔列表,而不是一列数据.这是否可能,如果是这样,怎么样?
知道如何让DatePicker出现在相关文本框的末尾而不是直接在它下面吗?容易发生的是文本框朝向页面底部,DatePicker向上移动以占用它并完全覆盖文本框.如果用户想要输入日期而不是选择日期,则他们不能.我宁愿让它出现在文本框之后,所以它如何垂直调整并不重要.
知道如何控制定位吗?我没有看到小部件的任何设置,我没有运气调整CSS设置,但我很容易丢失一些东西.
重复:
对于大型ASP.NET应用程序,实体框架或NHibernate,您会推荐什么?您认为这两种技术的优缺点是什么?
可能有一种更简单的方法可以做到这一点,如果有的话我会全神贯注.我的情况是我在表单上有一个下拉列表,我成功填充了文本和值.我还需要在客户端上可用的db表中的相同表行中添加其他相关字符串值,因此当用户从下拉列表中选择时,此相关数据将填充在表单上的文本框中.我正在处理的记录只有4条,所以存储在客户端上没什么大不了的.我想过将这些数据作为列表通过ViewData传递并加载到javascript数组中.当用户从下拉列表中选择时 - 我将确定所选索引并从阵列中获取所需的相关数据.我已经将下拉项的值用于其他所需数据,因此我需要一种方法来获取此相关数据,而无需返回服务器.如果我在正确的轨道上,有人可以发布一个简单的例子来填充js数组,其中sting值作为ViewData中的List返回.
谢谢,
麦克风
我需要快速实现一个非常小的C或C++ TCP服务器/客户端解决方案.这只是简单地将字节数组从一台计算机传输到另一台计算机 - 不需要是可扩展的/过度复杂的.越简单越好.如果可以,快速而肮脏.
我尝试使用本教程中的代码,但我无法在Linux中使用g ++进行构建:http://www.linuxhowtos.org/C_C++/socket.htm
如果可能的话,我想避免使用第三方库,因为我运行它的系统非常有限.这必须是C或C++,因为现有的应用程序已经实现.
感谢emg-2的回答,我设法使用以下步骤使上述代码示例与C++兼容:
将这些标头添加到客户端和服务器:
#include <cstdlib>
#include <cstring>
#include <unistd.h>
Run Code Online (Sandbox Code Playgroud)
在server.c中,将clilen的类型更改为socklen_t.
int sockfd, newsockfd, portno/*, clilen*/;
socklen_t clilen;
Run Code Online (Sandbox Code Playgroud)
在client.c中,更改以下行:
if (connect(sockfd,&serv_addr,sizeof(serv_addr)) < 0) { ... }
Run Code Online (Sandbox Code Playgroud)
至:
if (connect(sockfd,(const sockaddr*)&serv_addr,sizeof(serv_addr)) < 0)
Run Code Online (Sandbox Code Playgroud) 我目前正在尝试使用ProGuard模糊我的Eclipse RCP应用程序.问题是它混淆了包名(类My.Package.Class变成类似abc的东西),但是将包名保存在MANIFEST.MF的Export-Package部分中.
这导致我的应用程序(实际上是一组OSGi-bundle)无法运行,因为无法解析MANIFEST.MFs的Export-Package部分中指定的包名称.
ProGuard是否有任何成功模糊基于OSGi的RCP应用程序?基本上,我看到两个选择:要么完全关闭包名称混淆,要么使用MANIFEST.MF的导出包部分,但我找不到实现其中任何一个的方法.Proguard似乎只在MANIFEST.MF中混淆了Bundle-Activator类名,跳过了所有其他部分.提前致谢!
我正在进行IE8测试的一些进展,似乎旧的使用技术margin: 0 auto;在IE8的所有情况下都不起作用.
下面的HTML在FF3,Opera,Safari,Chrome,IE7和IE8 compat中给出了一个居中按钮,但不是 IE8标准:
<div style="height: 500px; width: 500px; background-color: Yellow;">
<input type="submit" style="display: block; margin: 0 auto;" />
</div>
Run Code Online (Sandbox Code Playgroud)
(作为一种解决方法,我可以为按钮添加显式宽度).
所以问题是:哪些浏览器是正确的?或者这是行为未定义的情况之一?
(我的想法是所有的浏览器都不正确 - 如果它是"display:block",按钮不应该是100%宽度?)
更新:我是个笨蛋.由于输入不是块级元素,我应该将它包含在带有"text-align:center"的div中.话虽如此,为了好奇,我仍然想知道按钮是否应该在上面的例子中居中.
对于BOUNTY:我知道我在这个例子中做了一些奇怪的事情,正如我在更新中指出的那样,我应该把它对准中心.对于赏金,我想参考回答的规格:
如果我设置"display:block",按钮的宽度应该是100%吗?或者这是不确定的?
由于显示是块,应该"margin:0 auto;" 中心按钮,或不,或未定义?