标签: packages

解决包冲突

假设我们有一个名为com.example1包含Hello类的包(以及其他类).

然后我们有另一个com.example2包含一个Hello类的包(显然具有不同的行为).

现在让我们假设我们需要com.example1中的每个类和com.example2中的Hello类

import com.example1.*;
import com.example2.Hello;
Run Code Online (Sandbox Code Playgroud)

在这种情况下哪一个被调用?

Hello hello = new Hello();
Run Code Online (Sandbox Code Playgroud)

或者这是否会产生编译错误?

出于好奇,这只是一个理论问题.

由于创建包是为了避免命名冲突,当两个包包含两个具有相同名称的类时会发生什么?

java packages

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

java包 - 我应该如何使用它来使它有意义?

我正在挖掘java,我只是停止使用包.老实说,我认为它的工作方式是愚蠢的,为什么我在这里写它是因为我是愚蠢的白痴,很可能我错了,它有一些东西,在这种情况下,我想知道它.

好吧,交易是:为什么有关键字"包"?(我知道它应该做什么,我在质疑它的存在的必要性)

正如我所发现的,如果你将某个类定义为一个包的一部分,比如包的名称是A,并且该类是在其他类中导入的,并且你想用javac编译类,你必须移动类从包A到同名目录.

如果最后你需要为它创建一个特殊的目录,为什么还要在每个类的开头写"package"呢?为什么文件系统本身不足以对这些类进行分组?为什么它不能像C中的#include一样工作?Javac无论如何都不生成任何二进制文件,为什么要让它更复杂呢?正如我所看到的那样,关键字包除了它之外什么都不做,只会让你编写更复杂的构建xmls ...

java packages

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

Perl包:如何将类导入'use'r的命名空间?

我正在开发一个Exception::Class::Nested为其"父"包定义异常(使用)的包.我不希望父包必须使用真正的长名称,并且我不想污染任何其他命名空间.

所以我想要做的是将类名的最后一个元素导出到use异常包的包的名称空间中.

例如,异常包的摘录:

package Klass:Foo::Bar::Exceptions;
use vars qw( @ISA @EXPORT @EXPORT_OK ... );
@ISA = qw( Klass::Foo::Bar Exporter );
use Exception::Class::Nested 0.04 (
    'Klass::Foo::Bar::Exceptions::BaseClass' => {
        description => 'Base class for exceptions',
        'Klass::Foo::Bar::Exceptions::NameError' => {
            error => "I don't like your face"
        }
    }
);
Run Code Online (Sandbox Code Playgroud)

'父母'包裹:

package Klass::Foo::Bar;
use Klass::Foo::Bar::Exceptions;
Klass::Foo::Bar::Exceptions::NameError->throw(error => "D'oh!");
my $e = NameError->new(error => 'Mwahaha!');
Run Code Online (Sandbox Code Playgroud)

导出/导入,使得第二调用(的异常类my $e之一)的作品,就好像NameError是在定义Klass::Foo::Bar,但我还没有想通出来呢.

(并且在任何人说'但Exception::Class有一个漂亮的alias东西之前' …

perl exception-handling namespaces packages perl-module

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

Delphi 2009找不到包中声明的记录

在Delphi 2009中,有一个包已正确安装并且可以工作.

但是,当代码编译时会抛出错误

error E2003: E2003 Undeclared identifier: 'TSomething'
Run Code Online (Sandbox Code Playgroud)

为什么以及如何解决它?(包括.dcu?.pas?)

该项目的构建没有"使用运行时包构建"选项.

delphi packages delphi-2009

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

访问模块时

我有关于包,模块和语法的问题.当你在同一个文件中访问一个包时,我注意到你会使用像......这样的东西.

package test;
$testVar="This is a test";

#and to access it using..

package main;
print($test::testVar);
Run Code Online (Sandbox Code Playgroud)

或者只是......

package test;
print($testVar);
Run Code Online (Sandbox Code Playgroud)

然而,当我使用这个语法与模块一起使用,发送一个参数时,我应该从打印函数的开头省略$,但在上面我没有.我注意到它不起作用,我不知道为什么.我的材料没有澄清.

require module;
print(package::sub("argument"));
Run Code Online (Sandbox Code Playgroud)

这是为什么?.我糊涂了.

perl module packages

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

在Common Lisp中如何确定系统包含的包

每次我通过Quicklisp安装系统时,我总会发现自己正在搜索基本软件包的名称,普通用户会感兴趣,因为它会导出要播放的"最终产品"API.因此,任何人都需要知道它的名字并在REPL上发出命令:

(use-package :package)
Run Code Online (Sandbox Code Playgroud)

为了在REPL上玩它.

是否有一种快速简便的方法来确定由Quicklisp加载的系统所包含的软件包,而无需搜索过时的文档.

packages common-lisp quicklisp

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

在另一个包中为类导入静态

如何从另一个包中将类导入为静态

import Package.class;
Run Code Online (Sandbox Code Playgroud)

可以很好地工作,但是

import static Package.class;
Run Code Online (Sandbox Code Playgroud)

给我一个java.lang.error编译异常

有可能还是我只需要忍受呢?

java import packages

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

meteor 0.9"list"显示"这些软件包的新版本可用"但"更新"没有

$ meteor list
...
 * New versions of these packages are available! Run 'meteor update' to update.
$ meteor update
Figuring out the best package versions to use. This may take a moment.
This project is at the latest release which is compatible with your
current package constraints.
Run Code Online (Sandbox Code Playgroud)

请参阅下面的简化版本:

在此输入图像描述

似乎list命令之间存在"冲突" ,即说有可用的更新,而update命令找不到任何......这怎么会发生?

packages meteor

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

将Laravel包表单4.2迁移到5.0

我已经为laravel 4.2开发了一个软件包,当你晚上已经注意到laravel 5.0刚刚发布时,我的软件包无法安装在新的laravel项目上

我的包的composer文件如下所示:

 "require": {
      "php": ">=5.4.0",        
      "illuminate/support": "4.2.*",
     "zofe/rapyd" : "1.3.*"
  },
Run Code Online (Sandbox Code Playgroud)

问题:
我应该对项目进行哪些更改以使其与Laravel 5项目兼容?而且我的软件包需要这个软件包https://github.com/zofe/rapyd-laravel尚未为Laravel5发布,是否会阻止我的软件包正确安装?

packages laravel laravel-5

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

在PL/SQL中创建触发抛出编译错误

我以用户ADMIN身份登录并执行PROCEDURE P1来检查和捕获日志.我在创建触发器时遇到错误

PROCEDURE P1
IS
BEGIN
INSERT statement
BEGIN
---
EXCEPTION

WHEN others THEN
  error_mgr.record_error();
 END P1;
Run Code Online (Sandbox Code Playgroud)

AS ADMIN用户没有足够的priveledge我作为另一个用户EXTRACT登录并创建了包error_mgr

create or replace
PACKAGE BODY error_mgr
IS
PROCEDURE record_error
 IS
 PRAGMA AUTONOMOUS_TRANSACTION;
 l_code  INTEGER := SQLCODE;
 l_mesg VARCHAR2(32767) := SQLERRM; 
 BEGIN
 INSERT INTO EXTRACT.error_log 
(created_on,created_by,errorcode,callstack,errorstack,backtrace,error_info) 
 VALUES(SYSDATE,USER,l_code,sys.DBMS_UTILITY.format_call_stack,null,
  sys.DBMS_UTILITY.format_error_backtrace,l_mesg);
        DBMS_OUTPUT.PUT_LINE('ERROR!!');  
COMMIT;
END record_error;
END error_mgr;
Run Code Online (Sandbox Code Playgroud)

注意:EXTRACT也是用户名和架构

提取模式中的ERROR LOG表有一个自动生成列id(LOG_ID)所以在EXTRACT模式中我使用的是序列和触发器

  SEQUENCE:
   CREATE SEQUENCE "EXTRACT"."SEQ_error_log" MINVALUE 1 MAXVALUE 
  9999999999999999999999999999 INCREMENT BY 1 START WITH 335 CACHE 20 NOORDER 
CYCLE ;
Run Code Online (Sandbox Code Playgroud)

触发:

 CREATE TRIGGER EXTRACT.BI_error_log
 BEFORE INSERT …
Run Code Online (Sandbox Code Playgroud)

database oracle triggers plsql packages

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