问题列表 - 第6097页

为什么这个通用java代码不会编译?

在这个简化的例子中,我有一个泛型类,以及一个返回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)

java generics

33
推荐指数
2
解决办法
2216
查看次数

为什么按钮点击事件"冒泡视觉树"到StackPanel,如MSDN文章所述?

在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)

c# wpf event-routing

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

MySQL结果以逗号分隔列表

我需要运行如下查询:

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)

但我希望子选择返回逗号分隔列表,而不是一列数据.这是否可能,如果是这样,怎么样?

mysql sql concatenation

115
推荐指数
3
解决办法
14万
查看次数

如何更改jQuery DatePicker控件的弹出位置

知道如何让DatePicker出现在相关文本框的末尾而不是直接在它下面吗?容易发生的是文本框朝向页面底部,DatePicker向上移动以占用它并完全覆盖文本框.如果用户想要输入日期而不是选择日期,则他们不能.我宁愿让它出现在文本框之后,所以它如何垂直调整并不重要.

知道如何控制定位吗?我没有看到小部件的任何设置,我没有运气调整CSS设置,但我很容易丢失一些东西.

javascript jquery jquery-ui jquery-ui-datepicker

103
推荐指数
7
解决办法
23万
查看次数


需要从Viewdata列表中填充javascript数组的简单示例

可能有一种更简单的方法可以做到这一点,如果有的话我会全神贯注.我的情况是我在表单上有一个下拉列表,我成功填充了文本和值.我还需要在客户端上可用的db表中的相同表行中添加其他相关字符串值,因此当用户从下拉列表中选择时,此相关数据将填充在表单上的文本框中.我正在处理的记录只有4条,所以存储在客户端上没什么大不了的.我想过将这些数据作为列表通过ViewData传递并加载到javascript数组中.当用户从下拉列表中选择时 - 我将确定所选索引并从阵列中获取所需的相关数据.我已经将下拉项的值用于其他所需数据,因此我需要一种方法来获取此相关数据,而无需返回服务器.如果我在正确的轨道上,有人可以发布一个简单的例子来填充js数组,其中sting值作为ViewData中的List返回.

谢谢,

麦克风

javascript arrays asp.net-mvc viewdata

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

74
推荐指数
4
解决办法
7万
查看次数

什么是简单的C或C++ TCP服务器和客户端示例?

我需要快速实现一个非常小的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)

c++ tcp client-server

41
推荐指数
3
解决办法
13万
查看次数

如何使用ProGuard混淆OSGi包?

我目前正在尝试使用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类名,跳过了所有其他部分.提前致谢!

obfuscation rcp osgi manifest.mf proguard

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

使用"margin:0 auto;" 在Internet Explorer 8中

我正在进行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:我知道我在这个例子中做了一些奇怪的事情,正如我在更新中指出的那样,我应该把它对准中心.对于赏金,我想参考回答的规格:

  1. 如果我设置"display:block",按钮的宽度应该是100%吗?或者这是不确定的?

  2. 由于显示是块,应该"margin:0 auto;" 中心按钮,或不,或未定义?

html css internet-explorer-8

81
推荐指数
4
解决办法
15万
查看次数