小编Jon*_*nny的帖子

在eclipse-rcp/swt中创建多个相同的文本验证侦听器

我正在尝试验证多个文本框的输入(即它们应该是一个数字),并在此处找到了有用的代码片段.

但是,如果我有三个文本框(text,moreTextevenMoreText),我如何应用具有相同功能的验证侦听器,而不必重复.addVerifyListener(new VerifyListener() {...三次()代码?

我不想实现switch语句或类似的(决定将它应用于哪个文本框),我想要一些更通用的东西(我可以将其用于将来使用的其他类).

text.addVerifyListener(new VerifyListener() {
  @Override
  public void verifyText(VerifyEvent e) {
    final String oldS = text.getText();
    final String newS = oldS.substring(0, e.start) + e.text + oldS.substring(e.end);

    try {
      BigDecimal bd = new BigDecimal(newS);
      // value is decimal
      // Test value range
    } catch (final NumberFormatException numberFormatException) {
      // value is not decimal
      e.doit = false;
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

java validation swt text eclipse-rcp

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

如何将从请求下载的文件保存到另一个目录?

目前,我使用它来下载文件,但它将它们放在运行它的同一文件夹中,但是如何将下载的文件保存到我选择的另一个目录中.

r = requests.get(url)  
with open('file_name.pdf', 'wb') as f:
    f.write(r.content)
Run Code Online (Sandbox Code Playgroud)

python python-3.x python-requests

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

从主机浏览器访问 VirtualBox/Vagrant 机器上的 django 服务器?

我在运行“bento/centos-6.7-i386”的 VirtualBox/Vagrant 机器上有一个 Django Web 服务器。我按照本指南创建了一个 Django 项目:https : //docs.djangoproject.com/en/dev/intro/tutorial01/

我有一个 Web 服务器在我的访客机器内运行在http://127.0.0.1:8000/上。这是我第一次运行 Django Web 服务器。它应该是一个 hello world 应用程序。

如何从我的主机浏览器访问此 Web 应用程序?我尝试config.vm.network "private_network", ip: "55.55.55.5"在 vagrant 文件中添加这一行,然后尝试按照python manage.py runserver 0.0.0.0:80其他人之前讨论中解释的解决方案之一运行该命令,但我无法使用 55.55.55.5:8000 从我的主机浏览器访问该站点。

如何从浏览器访问 Web 服务器?

以下给出的是我的流浪文件:

# -- mode: ruby -- 
# vi: set ft=ruby : 
VAGRANTFILE_API_VERSION = "2" 
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| 
config.vm.box = "bento/centos-6.7-i386" 
config.vm.network "forwarded_port", guest: 8000, host: 8000 
config.vm.network "forwarded_port", guest: 8080, host: 8080 
config.vm.network "forwarded_port", guest: 5000, host: 5000 …
Run Code Online (Sandbox Code Playgroud)

python django vagrant

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

java程序中的变量可用(单例)

我需要在运行时设置一个布尔变量,可以被任何其他类访问(无需将变量从类传递给类).此变量将是配置设置,并将取决于用户在运行时设置的某些值.

我怀疑单身是可行的方式,但是早上花了很多时间阅读它,我似乎找到了很多关于创建它们的最佳方法的例子(和参数),而没有提到如何实际使用它们.

单身是解决这个问题的方法吗?

如果是这样,任何人都可以提供一个单例的例子,它可以设置一个布尔值,可以从任何其他类静态访问吗?

编辑:我是一个白痴(完全过于复杂的问题,并错过了最简单的解决方案).

public static volatile boolean yourBoolean; 看起来它会完美运作

java

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

Java Generics:什么<?扩展接口<?>>是什么意思?

继上一篇文章之后,我希望有人可以帮助澄清/确认我对以下java泛型语句的理解,并提供一些输入,说明最终的含义:

如果:

Class<abc> className = x
Run Code Online (Sandbox Code Playgroud)

意味着将x类型赋值abcClass变量className

和:

Class<? extends IAbc> className = x
Run Code Online (Sandbox Code Playgroud)

指受让人x,它实现接口IAbcClass可变className

什么:

Class<? extends IAbc<?>> className = x
Run Code Online (Sandbox Code Playgroud)

意思?

java generics

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

subprocess.run:将check = True与stdout = PIPE结合起来是否安全?

Python 3.5引入了模块中run()函数subprocess作为新推荐的高级子进程调用方法.

在三个较旧的(自Python 2.5/2.7以来可用)高级API函数中check_call().在Python的3.5文档声称check_call()

[...]相当于:

run(..., check=True)
Run Code Online (Sandbox Code Playgroud)

该文件还警告说,不要通过subprocess.PIPE作为stdoutstderrcheck_call():

注意

不要使用stdout=PIPEstderr=PIPE使用此功能.子进程将阻塞它是否为管道生成足够的输出以填充OS管道缓冲区,因为没有读取管道.

由于它是"等效的",这个警告是否也适用于run(..., check=True),即应该

subprocess.run(..., stdout=subprocess.PIPE, check=True)
Run Code Online (Sandbox Code Playgroud)

subprocess.run(..., stderr=subprocess.PIPE, check=True)
Run Code Online (Sandbox Code Playgroud)

也要避免吗?(文件run()中没有提到这个警告.)

python subprocess python-3.x python-3.5

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

检查列表中的任何字符串是否包含在另一个列表中的任何字符串中

我有一个新闻标题列表,想检查是否有标题包含列表中的任何关键字。

例如

newstitle =['Python is awesome', 'apple is tasty', 'Tom cruise has new movie']
tag = ['Python','Orange', 'android']
Run Code Online (Sandbox Code Playgroud)

tag如果in 中有任何关键字newstitle,我希望它返回True

我知道如何使用单个标签来做到这一点:

any('Python' in x for x in newstitle)
Run Code Online (Sandbox Code Playgroud)

但是如何使用多个关键字呢?

python string substring list

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

类型不匹配:无法从Class <..>转换为Class <...>

我已经'继承了'一个Eclipse RCP项目,它似乎可以在基于3.6的目标平台集上运行良好.但是,我们需要更新到平台的最新版本,但是当我将目标平台更改为3.7(或4.2)时,我会遇到一些错误.

Type mismatch: cannot convert from Class<capture#1-of ?> to Class<? extends IDatasetProvider>
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议/解释为什么这可能在3.6中正常工作,但在3.7(及更高版本)中没有?关于我将从哪里开始解决这个问题的任何想法也会很棒!

导致此错误的代码片段(出现在b.loadClass部分):

    List<Class<? extends IDatasetProvider>> list = new LinkedList<Class<? extends IDatasetProvider>>();
    ClassMap<IDatasetProvider, List<String>> map = new ClassMap<IDatasetProvider, List<String>>();

    for (IConfigurationElement e : elements)
    {
        try
        {
            Bundle b = Platform.getBundle(e.getContributor().getName());

            String viewId = e.getAttribute("viewId");
            Class<? extends IDatasetProvider> datasetType = b.loadClass(e
                    .getAttribute("datasetProvider"));
            ...
            ...
            ...
        }
     }
Run Code Online (Sandbox Code Playgroud)

还有3个(可能)相关的警告

 IDatasetProvider is a raw type. References to generic type IDatasetProvider<T> should be parameterized 
Run Code Online (Sandbox Code Playgroud)

如果我改回我们的3.6平台,那一切都会再次运作.

编辑:感谢Alexy和gzukmin的帮助.

我使用了以下代码,特别是强制转换Class<? extends IDatasetProvider>而不仅仅是 …

java eclipse-rcp

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

使用VBA将图片插入(然后引用)到Excel中

我正在尝试使用VBA将图片插入到工作表中,以后我可以通过名称引用(例如删除或隐藏).

我可以使用类似下面的代码插入图像:

 ActiveSheet.Shapes.AddPicture Filename:="image.jpg", linktofile:=msoFalse, _
        savewithdocument:=msoCTrue, Left:=10, Top:=20, width:=100, Height:=50
Run Code Online (Sandbox Code Playgroud)

但是,我正在努力将图片分配给一个形状(或其他对象),以便我可以命名它,然后再引用它.例如

Dim shp As Shape
set shp = ActiveSheet.Shapes.AddPicture Filename:="image.jpg", linktofile:=msoFalse, _
        savewithdocument:=msoCTrue, Left:=10, Top:=20, width:=100, Height:=50
shp.name = "myPicture"

... some code ...

ActiveSheet.Shapes("myPicture").Delete ' or similar code to later delete the image 
Run Code Online (Sandbox Code Playgroud)

不过,我对得到一个语法错误set shp = ...

我也试过:Dim shp As Excel.Shape,Dim shp As Object根据SO帖子中的评论:VBA插入嵌入图片excel但仍然得到语法错误.

我哪里错了?

excel vba excel-vba

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

将子类或超类对象传递给方法(期望超类对象)

我正在使用一些需要将超类或子类对象发送到方法的代码.

该方法public void repair(Vehicle vehicle)只能访问超类对象中的方法.

public class Vehicle {
    //class stuff
}

public class Car extends Vehicle {
    //class stuff
}

public static void main(String[] args) 
{
    // do stuff to determine whether working with a vehicle or car
    if (someCondition)
    {
        Car = new Car();
        // do some stuff...
        repair(Car);
    }
    else
    {
        Vehicle = new Vehicle();
        // do some stuff...
        repair(Vehicle);
    }
}   
Run Code Online (Sandbox Code Playgroud)

我想我有三个选择:

  1. 保持代码原样,似乎工作正常. - 我不喜欢这个选项,感觉我正在做出假设,我怀疑只有汽车方法可能会被意外调用,导致意外行为.
  2. 在car中创建一个getVehicle()方法,以返回一个Vehicle.然后使用repair(Car.getVehicle());- 这感觉好一点
  3. 更改Car = new Car(); …

java inheritance

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