小编npi*_*nti的帖子

XML字符串反序列化为c#对象

我收到像这样的xml文件.

<radio>
  <channel id="Opus">
    <display-name>Opus</display-name>
    <icon src="" />
  </channel>
  <channel id="Klasika">
    <display-name>Klasika</display-name>
    <icon src="" />
  </channel>
  <channel id="LR">
    <display-name>LR</display-name>
    <icon src="" />
  </channel>
  <programme channel="Opus" start="20130203060000" stop="20130203110000" duration="050000">
    <title lang="lt">OPUS muzika.</title>
    <desc lang="lt">OPUS muzika.</desc>
    <category lang="lt">muzikos laidos</category>
    <date>2013.02.03</date>
  </programme>
  <programme channel="Opus" start="20130203110000" stop="20130203150000" duration="040000">
    <title lang="lt">V?lyvi pusry?iai su OPUS.</title>
    <desc lang="lt">V?lyvi pusry?iai su OPUS.</desc>
    <category lang="lt">muzikos laidos</category>
    <date>2013.02.03</date>
  </programme>
</radio>
Run Code Online (Sandbox Code Playgroud)

有许多程序频道实例.我尝试将它反序列化为这个c#对象,但我得到一个null而不是object:

[XmlRoot("radio")]
public sealed class radio
{
    [XmlRoot("channel")]
    public sealed class channel
    {
        [XmlAttribute("id")]
        public string …
Run Code Online (Sandbox Code Playgroud)

c# xml

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

java.net.SocketException:软件导致连接中止:套接字写入错误

我正在尝试将图像从Java桌面应用程序发送到J2ME应用程序.问题是我得到了这个例外:

java.net.SocketException: Software caused connection abort: socket write error
Run Code Online (Sandbox Code Playgroud)

我在网上四处看看,尽管这个问题并不罕见,但我无法找到具体的解决方案.我在传输之前将图像转换为字节数组.这些是分别在桌面应用程序和J2ME上找到的方法

    public void send(String ID, byte[] serverMessage) throws Exception
    {            
        //Get the IP and Port of the person to which the message is to be sent.
        String[] connectionDetails = this.userDetails.get(ID).split(",");
        Socket sock = new Socket(InetAddress.getByName(connectionDetails[0]), Integer.parseInt(connectionDetails[1]));
        OutputStream os = sock.getOutputStream();
        for (int i = 0; i < serverMessage.length; i++)
        {
            os.write((int) serverMessage[i]);
        }
        os.flush();
        os.close();
        sock.close();
    }

    private void read(final StreamConnection slaveSock)
    {
        Runnable runnable = new Runnable()
        {
            public void …
Run Code Online (Sandbox Code Playgroud)

java networking java-me

13
推荐指数
1
解决办法
7万
查看次数

从动态获取C#DLL中的代码

我想看看DLL(可能是在不同的机器上编译)是否相同.要做到这一点,我正在做的是加载DLL并计算MD5,这是因为DLL在不同的机器上失败(但具有相同的源).这似乎是由于这是在编译时添加(如有人提到其他元数据在这里).

我想过对整个DLL进行反向工程并查看代码是否匹配,但是,我有两个问题:

  • 我只能找到这样做的工具,我似乎无法找到一个C#库或类似的东西来做我需要的东西.
  • 我不是100%确定反编译源在不同机器上编译的源代码是否相同.

任何提示,技巧和指示将不胜感激.

.net c# reverse-engineering

10
推荐指数
2
解决办法
1324
查看次数

正则表达式组捕获

我有一封标准电子邮件,希望从中提取某些详细信息。

电子邮件中包括以下行:

<strong>Name:</strong> John Smith
Run Code Online (Sandbox Code Playgroud)

因此,为了模拟这一点,我使用以下JavaScript:

<strong>Name:</strong> John Smith
Run Code Online (Sandbox Code Playgroud)

这只会产生一个结果,即:

<strong>Name:</strong> John Smith
Run Code Online (Sandbox Code Playgroud)

我希望获得捕获组([^\<]*),在这个示例中John Smith

我在这里想念什么?

javascript regex

5
推荐指数
2
解决办法
45
查看次数

JFrame到图像而不显示JFrame

我试图将JFrame渲染到图像而不显示JFrame本身(类似于这个问题所要求的).我试过使用这段代码:

private static BufferedImage getScreenShot(Component component)
{
    BufferedImage image = new BufferedImage(component.getWidth(), component.getHeight(), BufferedImage.TYPE_INT_RGB);
    // call the Component's paint method, using
    // the Graphics object of the image.
    component.paint(image.getGraphics());
    return image;
}
Run Code Online (Sandbox Code Playgroud)

然而,当这仅适用JFramesetVisible(true)设置.这将导致图像显示在屏幕上,这不是我想要的.我也尝试过这样的东西:

public class MyFrame extends JFrame
{
    private BufferedImage bi;

    public MyFrame(String name, BufferedImage bi)
    { 
         this.bi = bi;
         super(name);
    }

    @Override
    public void paint(Graphics g)
    {
         g.drawImage(this.bufferedImage, 0, 0, null);
    }
}
Run Code Online (Sandbox Code Playgroud)

然而,这显示黑色图像(如上面的代码).我很确定我所追求的是可能的,问题是我无法真正找到.我对自定义Swing组件的体验非常有限,因此任何信息都将受到赞赏.

谢谢.

java swing bufferedimage jframe

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

类型参数G隐藏类型G.

public class MyGenericClass< G> {


    public <G> G genericMethod1(G g){
        System.out.println(g.toString());
        return g;

    }

    public <X> G genericMethod2(G g) {
        System.out.println(g.toString());
        return g;
    }

    public <X> X genericMethod3(G g) {
        System.out.println(g.toString());
        Integer i = new Integer(100);
        return (X) i;       
    }


    public static void main(String... cmdarg) {

        MyGenericClass<Employee> gemp = new MyGenericClass<Employee>();
        Employee e1 = new Employee();
        e1.setName("My Name");


        String resultOfMethod3 = gemp.genericMethod3(e1);
        System.out.println(resultOfMethod3);                            

    }


}
Run Code Online (Sandbox Code Playgroud)

在genericMethod1:我得到编译器警告"类型参数G隐藏类型G".

问题: G隐藏哪个G?这是什么意思?

genericMethod2不显示任何错误/警告.

问题: 我认为不应该编译.为什么在同一方法签名中允许两种不同的类型?与G和X比较的典型实时示例是什么?

在genericMethod3中:我故意返回一个Integer对象,在main方法中我试图将结果赋给String.正如所料:我得到了ClassCastException.

问题:使用泛型来避免ClassCastExceptions不是最初的目的吗?为什么编译器允许它?这是泛型设计中的一个错误吗?

java generics

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

如何确定国际象棋中的路径是否没有障碍?

我有一个包含所有Piece对象的2D数组,每个对象都是Rook,Bishop,King等的实例......

如何判断从srcX,srcY到dstX,dstY的路径是否被另一块阻挡?

我能想到的唯一的事情将涉及大量繁琐的代码= /

java arrays algorithm

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

如何处理正则表达式中的多个括号?

我有这种类型的字符串:

文字(更多文字)

我想要做的是有一个正则表达式来提取字符串的“更多文本”部分。到目前为止,我一直在使用这个正则表达式:

"^.*\\((.*)\\)$"
Run Code Online (Sandbox Code Playgroud)

尽管它适用于许多情况,但如果我有这样的东西,它似乎会失败:

文字(更多文字(甚至更多文字))

我得到的是:更多的文字)

我想得到的是:更多的文字(甚至更多的文字)(基本上是最外面一对括号的内容。)

java regex

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

替换字符串中的变量?

我正在搜索Excel电子表格模板的内容,替换@Something所代表的所有变量.

我有所有变量名称提出代码,我只是想找到一种方法来替换它们在字符串中.

例:

我叫@Name

我希望它成为:

我的名字是约翰.


我的守则解释说:

我有一个数组持有一个结构,其中包含:

TagPointer:这是我的变量@name,TagValue:这就是John的名字

在这里,我可以得到我的变量所在的索引,我有原始的字符串它的Comp.我只是不确定如何取代@Something.

int testnum;
if (Comp != "null")
{
    if (Comp.IndexOf(ArrayNode[i].TagPointer) != -1)
    {
        testnum = Comp.IndexOf(ArrayNode[i].TagPointer);                          
    }
}
Run Code Online (Sandbox Code Playgroud)

c# string

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

在linux上编译java源代码

我正在尝试编译分为不同包的源代码.我写了一个源文本,并在其中列出了java文件的所有路径.我还制作了一个makefile并写了以下几行:

compile: bin
    javac -d bin -cp biuoop-1.4.jar @sources.txt
run:
    java -cp biuoop-1.4.jar:bin Ass5Game 2 4
bin:
    mkdir bin
Run Code Online (Sandbox Code Playgroud)

biupoop是我正在使用的内置jar文件.

在我使用make commend之后,计算机说:

javac -d bin -cp biuoop-1.4.jar @sources.txt
javac: file not found: animations\Animation.java
Usage: javac <options> <source files>
use -help for a list of possible options
make: *** [compile] Error 2.
Run Code Online (Sandbox Code Playgroud)

我如何编译包中的文件?

java linux

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

为什么java不允许在方法覆盖的情况下更改返回类型

我有A班:

 public class A {
    int sayHello(int i,int j){
        return i+j;
    }
 }
Run Code Online (Sandbox Code Playgroud)

另一个B类:

public class B extends A {  
    @Override
    int sayHello(int i, int j) {
        return i+j;
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我将类A的方法sayHello(int,int)的返回类型从int更改为float,则会显示错误,因为根据覆盖规则,返回类型也被认为是为什么它也不是有效的覆盖和重载.

我很困惑为什么java不允许改变返回类型.为什么返回类型也需要相同

java

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