JavaEE中package-info如何解除

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaEE中package-info如何解除相关的知识,希望对你有一定的参考价值。

参考技术A 一、pacakge-info.java介绍
pacakge-info.java是一个Java文件,可以添加到任何的Java源码包中。pacakge-info.java的目标是提供一个包级的文档说明或者是包级的注释。
pacakge-info.java文件中,唯一要求包含的内容是包的声明语句,比如:
package com.ch.service;

二、包文档
在Java 5之前,包级的文档是package.html,是通过JavaD www.hbbz08.com oc生成的。而在Java 5以上版本,包的描述以及相关的文档都可以写入pacakge-info.java文件,它也用于JavaDoc的生成。比如:
点击(此处)折叠或打开
/**
* dev1.ch包描述

* 基于Apache DbUtils库封装的工具库,简化开发
* @author Li Qiang

* date: 2015.5.13
* @since 1.7
* @version 1.0
*
*/
package dev1.ch;
上面的说明通过JavaDoc生成如下:

点击dev1.ch程序包的链接后显示:

三、包注释
注释对于程序员来说非常重要,pacakge-info.java文件包含了包级的注释。我们还可以使用ElementType来自定义注释。
包注释当然是ElementType.PACKAGE了,除此之外,还有:
ElementType.TYPE (class, interface, enum)
ElementType.FIELD (instance variable)
ElementType.METHOD ElementType.PARAMETER
ElementType.CONSTRUCTOR
ElementType.LOCAL_VARIABLE
ElementType.ANNOTATION_TYPE (应用于另一个注解上)

比如,想让包中的所有类型过时(Deprecate),你可以注释每一个单独的类型(类、接口、枚举等),如下所示:
点击(此处)折叠或打开
@DEPRECATED
PUBLIC CLASS CONTACT

或者是可以在package-info.java包声明文件中使用@Deprecated注释,它可以让包中的一切均过时。
点击(此处)折叠或打开
@Deprecated
package dev1.ch.domain;

四、把package-info.java添加到包中
可以手动在包目录下创建package-info.java文件,也可以通过Eclipse工具实现这一点。

如何从 UIAlertView 按钮中解除 segues

【中文标题】如何从 UIAlertView 按钮中解除 segues【英文标题】:How to unwind segues from UIAlertView button 【发布时间】:2014-09-12 10:20:13 【问题描述】:

我有 3 个视图控制器。第一个是从我的根视图控制器模态呈现的。

它们位于使用push 从第一到第三的导航堆栈中。

我的最终视图控制器(第三个)有一个UIAlertView,按确定后,我想放松到第一个视图控制器。

但是,我所读到的有关这种展开的任何内容都表明-(IBAction),这是系统通过情节提要按钮激活的。

如何从第三个视图控制器放松到第一个视图控制器?我用过

[self performSegueWithIdentifier:segueString sender:self];

但它在尝试再次导航时使应用程序崩溃

【问题讨论】:

使用[self.navigationcontroller poptorootviewcontroller]方法 【参考方案1】:

所以你需要使用 UIAlertView Delegate 方法如下,

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex

  //Using buttonIndex you could find whether OK or CANCEL is pressed and perform your popToRootViewController call.
  //Below on OK press then moving to root VC
  if (buttonIndex==0)
  
     //OK is pressed...
    [self.navigationController popToRootViewControllerAnimated:YES];
  
  else 
     //CANCEL is pressed...
  

希望对您有所帮助。

【讨论】:

【参考方案2】:
[self.navigationController popToRootViewController] 

将帮助您解决问题

【讨论】:

【参考方案3】:

@walle84 给出的解决方案很棒……但不是 Unwind Segue 解决方案。如果您想使用真正的 Unwind Segues,请按照此步骤逐步操作。

在您的 FirstViewController.m 文件中,添加一个 -reset: 方法,以便您的代码如下所示:

#import "FirstViewController.h"

@interface FirstViewController ()

@end

@implementation FirstViewController

-(IBAction)reset:(UIStoryboardSegue *)segue 
    //you can do stuff here, if necessary
    //popToRootViewControllerAnimated doesn't allow it
    NSLog(@"Back to FirstViewController");


- (void)viewDidLoad 
    [super viewDidLoad];


- (void)didReceiveMemoryWarning 
    [super didReceiveMemoryWarning];


@end

在您的 ThirdViewController.m 中,设置您的 -alertView:clickedButtonAtIndex: 方法,使您的代码如下所示:

#import "ThirdViewController.h"

@interface ThirdViewController () <UIAlertViewDelegate>

@end

@implementation ThirdViewController

- (IBAction)buttonPressed:(id)sender 
    UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"MyApp"
                                                      message:@"Do you want to reset to FirstViewController?"
                                                     delegate:self
                                            cancelButtonTitle:@"Cancel"
                                            otherButtonTitles:nil];

    [message addButtonWithTitle:@"Perform Unwind"];
    [message show];


- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
    if (buttonIndex == 1) 
        [self performSegueWithIdentifier:@"myUnwindSegue" sender:self];
    


- (void)viewDidLoad 
    [super viewDidLoad];


- (void)didReceiveMemoryWarning 
    [super didReceiveMemoryWarning];


@end

然后,在您的 Storyboard 中,选择您的 ThirdViewController 场景,单击 Third View Controller 按钮并将其拖动到 Exit 按钮(见下图)。将出现一个弹出窗口。选择其中的Reset: 链接。

完成后,选择您的 unwind segue 按钮(见下图),然后在 Attributes Inspector 中将其名称设置为“myUnwindSegue”(见下图)。

如果您想了解更多关于 Unwind Segues 的信息,可以观看 WWDC 2012 会议视频“在您的应用中采用故事板”[开始于 38 分钟]。

【讨论】:

以上是关于JavaEE中package-info如何解除的主要内容,如果未能解决你的问题,请参考以下文章

Java 中 package-info 这个类有啥作用,如何使用

PACKAGE-INFO.JAVA 作用及用法详解

Java package-info.java文件使用学习

Java package-info.java文件使用学习

有没有办法在实体类和 package-info.java 中定义命名查询?

需要从绑定文件中生成 package-info.java 中的 JAXB 注释