问题列表 - 第14499页

Java代表的地图

我正在尝试为交互式Java程序创建一个非常简单的命令行库.您启动Java程序,它会提示您输入命令.语法是:

> action [object_1, [object_2, [... object_n] ... ]]
Run Code Online (Sandbox Code Playgroud)

例如:

> addUser name "John Doe" age 42
Run Code Online (Sandbox Code Playgroud)

在这里action = "addUser", object_1 = "name", object_2 = "John Doe", object_3 = "age", object_4 = "42".

之后的一切行动是一个对象(即,一个动作使用对象).您可以看到操作和对象是简单的字符串.如有必要,还可以将对象字符串转换为数字.

我的计划是这个命令行库的用户只需创建方法(属于任何合适的Java对象)并将每个方法分配给特定的操作.命令行中的对象成为用户分配方法的参数.实现上述示例的方法的合适类将是:

class Foo {
    public void addUserHandler(
            String param1, String param2, String param3, Integer param4) {
        do.someThing();
    }
}
Run Code Online (Sandbox Code Playgroud)

当用户键入命令时,程序员分配的相应函数将使用命令行中指定的参数进行调用.

我知道Java没有函数指针(如C)或委托(如C#),实现回调的方法是通过接口,但是,我不知道如何在这种情况下使用接口.我在界面上看到的问题是他们有:

  1. 要实现的固定数量的功能
  2. 要实现的功能具有固定的声明.

(1)的问题在于我的库的用户可能决定实现任意数量的功能,因为他想要支持许多动作.(2)的问题是用户希望为具有描述性名称的函数分配,例如addUserHandler()用于"addUSer"动作.

如果Java有代理或函数指针,我只需在字符串(表示操作)和委托(在程序中实际执行操作)之间创建一个Map.我想我可以使用Reflection来模拟委托,但它是血腥的,我失去了类型安全性,因为我必须为类和方法使用String名称.有没有更好的方法?

谢谢,

java delegates function-pointers callback

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

如何从服务中可靠地捕获Windows登录,注销,锁定和解锁事件?

using Microsoft.Win32; 

public class App 
{ 
  static void Main() 
  { 
    SystemEvents.SessionSwitch += SystemEvents_SessionSwitch; 
    Console.ReadLine();  
    SystemEvents.SessionSwitch -= SystemEvents_SessionSwitch; 
  } 

  static void SystemEvents_SessionSwitch(object sender, SessionSwitchEventArgs e) 
  { 
  if(e.Reason == SessionSwitchReason.SessionLock) 
  { 
    Console.WriteLine("locked at {0}", DateTime.Now); 
  } 
  if(e.Reason == SessionSwitchReason.SessionUnlock) 
  { 
    Console.WriteLine("unlocked at {0}", DateTime.Now); 
  } 
} 
Run Code Online (Sandbox Code Playgroud)

我创建了一个Windows服务.当我重新启动系统并登录,注销,锁定或解锁会话时.它不会捕获事件.该服务正在运行,但无法正常运行.

当我重新启动服务时,它将按预期捕获所有事件.如何进行故障排除/修复?

c# events windows-services

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

"不良角色范围"例外?

错误:

Exception Value:     bad character range
Exception Location:  /usr/lib/python2.6/re.py in _compile, line 245
Python Executable:   /usr/bin/python
Run Code Online (Sandbox Code Playgroud)

我完全不知道这意味着什么.任何人都可以冒险猜测或指向正确的方向吗?

之前一切正常.我只改变了一些微不足道的代码!:S

if "-" in stop:
    dt1 = datetime.strptime(stop, "%Y-%m-%dT%H:%M:%S")
    stopInS = time.mktime(dt1.timetuple())
    stopInMS = int(startInS) * 1000
else:
    splitter = re.compile(r'[\D]')
    preStop = splitter.split(stop)
    stopInMS = ''.join(preStop)
Run Code Online (Sandbox Code Playgroud)

我只是在'in'之前玩弄双引号...然后整个事情因这个错误而崩溃了.

编辑:

另一个正则表达式:

    splitter1 = re.compile('[:]')
    arrayOfIDs = splitter1.split(identifier)
    idLens = len(arrayOfIDs)
Run Code Online (Sandbox Code Playgroud)

django

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

如何使用标准的linux/unix过滤器验证信息?

我在制表符分隔文件中有以下数据:

_ DATA _

Col1    Col2     Col3     Col4    Col5
blah1   blah2     blah3   4       someotherText
blahA   blahZ     blahJ   2       someotherText1
blahB   blahT     blahT   7       someotherText2
blahC   blahQ     blahL   10      someotherText3
Run Code Online (Sandbox Code Playgroud)

我想确保此文件第4列中的数据始终为整数.我知道如何在perl中执行此操作

  • 读取每一行,在变量中存储第4列的值
  • 检查该变量是否为整数
  • 如果以上是真的,继续循环
  • 否则会断开循环,并显示文件数据不正确的消息

但是我如何在使用标准linux/unix过滤器的shell脚本中执行此操作?我的猜测是使用grep,但我不确定如何?

bash

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

学习WPF的良好资源

我是WPF的新手,我有兴趣学习它.我已经阅读了一些教程,但我正在寻找一个包含项目/作业的网站或书籍以及解决方案,以便您可以编码和学习.在我完成一个项目的过程中,我希望能够在遇到困难的情况下参考解决方案.

有人可以分享任何链接/材料,如果你有,可以给我一些WPF项目/作业与解决方案一起工作.

谢谢.

wpf

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

c#DataTable.Select:带有' - '字符的问题

我在C#项目中遇到了问题.我正在使用带有DataTable对象的Select方法.如果我在搜索字符串中加上' - ',我什么都不选.所以这是我所拥有的代码示例:

DataTable table;
DataRow[] rows = table.Select("[Radio Name] LIKE '*Lounge-MP3-96*'");
Run Code Online (Sandbox Code Playgroud)

但是有一个专栏:Radio Name = 1.FM - The Chillout Lounge-MP3-96

我要逃脱角色吗?怎么样?

我刚试过

DataTable table;
DataRow[] rows = table.Select("[Radio Name] LIKE '*Lounge*'");
Run Code Online (Sandbox Code Playgroud)

有用!所以它似乎真的与" - "有关......

c# datatable

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

Micro-ISV许可证成本 - .NET还是开源?

我已经开始在ASP.NET MVC中开发一个网站,并参与了BizSpark计划.关注我的唯一部分是SQL Server Enterprise三年后的许可成本.

鉴于此成本,以及该产品可能无法"起飞"的潜在结果; 我应该在诸如Ruby on Rails或Java之类的"免费"平台上重写应用程序吗?

language-agnostic

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

如何在Vim中模拟TextMate的命令返回功能

TextMate有一个功能,在任何点按Command-Return都会在当前行下方插入一个新行,将光标放在新行的开头.这在Vim的命令模式下按'o'就可以了(确切地说?).

有没有办法在Vim的插入模式下模拟这个TextMate功能?同样的问题表达方式不同:我可以在插入模式下进行Cmd-Return在命令模式下执行"o"操作吗?

vim textmate

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

如何在Django模型对象上记忆昂贵的计算?

我的UserProfile对象上有几个包含JSON对象的TextField列.我还为每个列定义了一个setter/getter属性,它封装了将JSON序列化和反序列化为python数据结构的逻辑.

此数据的性质可确保在单个请求中通过视图和模板逻辑多次访问它.为了节省反序列化成本,我想在读取时记住python数据结构,在直接写入属性时无效或从模型对象保存信号.

在哪里/如何存储备忘录?我对使用实例变量感到紧张,因为我不理解查询实例化任何特定UserProfile背后的魔力.是__init__使用安全,或是否需要通过检查备忘录属性的存在hasattr(),在每个读?

这是我当前实现的一个示例:

class UserProfile(Model):
    text_json = models.TextField(default=text_defaults)

    @property
    def text(self):
        if not hasattr(self, "text_memo"):
            self.text_memo = None
        self.text_memo = self.text_memo or simplejson.loads(self.text_json)
        return self.text_memo
    @text.setter
    def text(self, value=None):
        self.text_memo = None
        self.text_json = simplejson.dumps(value)
Run Code Online (Sandbox Code Playgroud)

python django memoization django-models

14
推荐指数
2
解决办法
4377
查看次数

用jQuery将3个div包装在一起

我需要使用jQuery将3个div包装成一个.

<div class="one"></div><div class="two"></div><div class="three"></div>
Run Code Online (Sandbox Code Playgroud)

进入这个

<div class="wrap"><div class="one"></div><div class="two"></div><div class="three"></div></div>
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

非常感谢您的帮助

jquery

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